Skip to content

Align SSH public key location with default home folder configuration - #2006

Open
Xin Wang (wangxin) wants to merge 1 commit into
Azure:masterfrom
wangxin:ssh-publickey-location
Open

Align SSH public key location with default home folder configuration#2006
Xin Wang (wangxin) wants to merge 1 commit into
Azure:masterfrom
wangxin:ssh-publickey-location

Conversation

@wangxin

Copy link
Copy Markdown

The default home folder of new user can be configured in /etc/default/useradd.

However, the VMAccess extension always assumes that the SSH public key is under /home/<user_name>/.ssh/authorized_keys. Location of the SSH public key must be aligned with the user's home folder. Otherwise, SSH authentcation would fail.

For example, if "HOME=/data/home" is configured in /etc/defaults/useradd, then home folder of new user would be "/data/home/<user_name>".

The problem is that SSH public key provided by user would be put in "/home/<user_name>/.ssh/authorized_keys". Then the new user cannot authentication by SSH key.

The code for specifying SSH public key location:

            pub_path = os.path.join('/home/', user_name, '.ssh',
                                    'authorized_keys')

This change updated the hardcoded "/home" to "$HOME". The subsequent code for preparing dir will replace "$HOME" string with the actual default home folder location:

                    pub_path = ovf_env.prepare_dir(pub_path, MyDistro)

The default home folder of new user can be configured in `/etc/default/useradd`.

However, the VMAccess extension always assumes that the SSH public key is under
`/home/<user_name>/.ssh/authorized_keys`. Location of the SSH public key must
be aligned with the user's home folder. Otherwise, SSH authentciation would fail.

For example, if "HOME=/data/home" is configured in /etc/defaults/useradd, then home
folder of new user would be "/data/home/<user_name>".

The problem is that SSH public key provided by user would be put in
"/home/<user_name>/.ssh/authorized_keys". Then the new user cannot authentication
by SSH key.

The code for specifying SSH public key location:
```
            pub_path = os.path.join('/home/', user_name, '.ssh',
                                    'authorized_keys')
```

This change updated the hardcoded "/home" to "$HOME".
The subsequent code for preparing dir will replace "$HOME" string with the actual default home folder location:
```
                    pub_path = ovf_env.prepare_dir(pub_path, MyDistro)
```

Signed-off-by: Xin Wang <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant