Skip to content

Commit 0ffaf03

Browse files
Merge pull request #77 from ThorstenHeck/master
Add the possibility to change SSH Port and SSH User
2 parents 81087ed + d434888 commit 0ffaf03

File tree

2 files changed

+34
-2
lines changed

2 files changed

+34
-2
lines changed

README.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,8 @@ $ docker-machine create \
108108
- `--hetzner-key-label`: `key=value` pairs of additional metadata to assign to SSH key (only applies if newly creadted).
109109
- `--hetzner-placement-group`: Add to a placement group by name or ID; a spread-group will be created on demand if it does not exist
110110
- `--hetzner-auto-spread`: Add to a `docker-machine` provided `spread` group (mutually exclusive with `--hetzner-placement-group`)
111+
- `--hetzner-ssh-user`: Change the default SSH-User
112+
- `--hetzner-ssh-port`: Change the default SSH-Port
111113

112114
#### Existing SSH keys
113115

@@ -145,6 +147,9 @@ was used during creation.
145147
| `--hetzner-key-label` | (inoperative) | `[]` |
146148
| `--hetzner-placement-group` | `HETZNER_PLACEMENT_GROUP` | |
147149
| `--hetzner-auto-spread` | `HETZNER_AUTO_SPREAD` | false |
150+
| `--hetzner-ssh-user` | `HETZNER_SSH_USER` | root |
151+
| `--hetzner-ssh-port` | `HETZNER_SSH_PORT` | 22 |
152+
148153

149154
## Building from source
150155

driver.go

Lines changed: 29 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,11 +76,17 @@ const (
7676
flagPlacementGroup = "hetzner-placement-group"
7777
flagAutoSpread = "hetzner-auto-spread"
7878

79+
flagSshUser = "hetzner-ssh-user"
80+
flagSshPort = "hetzner-ssh-port"
81+
7982
labelNamespace = "docker-machine"
8083
labelAutoSpreadPg = "auto-spread"
8184
labelAutoCreated = "auto-created"
8285

8386
autoSpreadPgName = "__auto_spread"
87+
88+
defaultSSHPort = 22
89+
defaultSSHUser = "root"
8490
)
8591

8692
// NewDriver initializes a new driver instance; see [drivers.Driver.NewDriver]
@@ -90,8 +96,6 @@ func NewDriver() *Driver {
9096
Type: defaultType,
9197
IsExistingKey: false,
9298
BaseDriver: &drivers.BaseDriver{
93-
SSHUser: drivers.DefaultSSHUser,
94-
SSHPort: drivers.DefaultSSHPort,
9599
},
96100
}
97101
}
@@ -203,6 +207,18 @@ func (d *Driver) GetCreateFlags() []mcnflag.Flag {
203207
Name: flagAutoSpread,
204208
Usage: "Auto-spread on a docker-machine-specific default placement group",
205209
},
210+
mcnflag.StringFlag{
211+
EnvVar: "HETZNER_SSH_USER",
212+
Name: flagSshUser,
213+
Usage: "SSH username",
214+
Value: defaultSSHUser,
215+
},
216+
mcnflag.IntFlag{
217+
EnvVar: "HETZNER_SSH_PORT",
218+
Name: flagSshPort,
219+
Usage: "SSH port",
220+
Value: defaultSSHPort,
221+
},
206222
}
207223
}
208224

@@ -224,6 +240,9 @@ func (d *Driver) SetConfigFromFlags(opts drivers.DriverOptions) error {
224240
d.Firewalls = opts.StringSlice(flagFirewalls)
225241
d.AdditionalKeys = opts.StringSlice(flagAdditionalKeys)
226242

243+
d.SSHUser = opts.String(flagSshUser)
244+
d.SSHPort = opts.Int(flagSshPort)
245+
227246
d.placementGroup = opts.String(flagPlacementGroup)
228247
if opts.Bool(flagAutoSpread) {
229248
if d.placementGroup != "" {
@@ -250,6 +269,14 @@ func (d *Driver) SetConfigFromFlags(opts drivers.DriverOptions) error {
250269
return nil
251270
}
252271

272+
func (d *Driver) GetSSHUsername() string {
273+
return d.SSHUser
274+
}
275+
276+
func (d *Driver) GetSSHPort() (int, error) {
277+
return d.SSHPort, nil
278+
}
279+
253280
func (d *Driver) setLabelsFromFlags(opts drivers.DriverOptions) error {
254281
d.ServerLabels = make(map[string]string)
255282
for _, label := range opts.StringSlice(flagServerLabel) {

0 commit comments

Comments
 (0)