Skip to content

Commit

Permalink
Merge pull request containers#9920 from ashley-cui/rooty
Browse files Browse the repository at this point in the history
[NO TESTS NEEDED] Add ssh connection to root user
  • Loading branch information
openshift-merge-robot authored Apr 2, 2021
2 parents 203e464 + f8bc391 commit 3ae4235
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 4 deletions.
2 changes: 2 additions & 0 deletions docs/source/markdown/podman-machine-init.1.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@ containers do not run on any other OS because containers' core functionality are
tied to the Linux kernel.

**podman machine init** initializes a new Linux virtual machine where containers are run.
SSH keys are automatically generated to access the VM, and system connections to the root account
and a user account inside the VM are added.

## OPTIONS

Expand Down
14 changes: 10 additions & 4 deletions pkg/machine/ignition.go
Original file line number Diff line number Diff line change
Expand Up @@ -55,10 +55,16 @@ func NewIgnitionFile(ign DynamicIgnition) error {
}

ignPassword := Passwd{
Users: []PasswdUser{{
Name: ign.Name,
SSHAuthorizedKeys: []SSHAuthorizedKey{SSHAuthorizedKey(ign.Key)},
}},
Users: []PasswdUser{
{
Name: ign.Name,
SSHAuthorizedKeys: []SSHAuthorizedKey{SSHAuthorizedKey(ign.Key)},
},
{
Name: "root",
SSHAuthorizedKeys: []SSHAuthorizedKey{SSHAuthorizedKey(ign.Key)},
},
},
}

ignStorage := Storage{
Expand Down
9 changes: 9 additions & 0 deletions pkg/machine/qemu/machine.go
Original file line number Diff line number Diff line change
Expand Up @@ -168,6 +168,11 @@ func (v *MachineVM) Init(opts machine.InitOptions) error {
if err := machine.AddConnection(&uri, v.Name, filepath.Join(sshDir, v.Name), opts.IsDefault); err != nil {
return err
}

uriRoot := machine.SSHRemoteConnection.MakeSSHURL("localhost", "/run/podman/podman.sock", strconv.Itoa(v.Port), "root")
if err := machine.AddConnection(&uriRoot, v.Name+"-root", filepath.Join(sshDir, v.Name), opts.IsDefault); err != nil {
return err
}
} else {
fmt.Println("An ignition path was provided. No SSH connection was added to Podman")
}
Expand Down Expand Up @@ -357,6 +362,10 @@ func (v *MachineVM) Remove(name string, opts machine.RemoveOptions) (string, fun
if err := machine.RemoveConnection(v.Name); err != nil {
logrus.Error(err)
}
if err := machine.RemoveConnection(v.Name + "-root"); err != nil {
logrus.Error(err)
}

vmConfigDir, err := machine.GetConfDir(vmtype)
if err != nil {
return "", nil, err
Expand Down

0 comments on commit 3ae4235

Please sign in to comment.