Skip to content

Conversation

wangxin
Copy link

@wangxin wangxin commented Jan 6, 2025

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]>
@wangxin wangxin requested review from D1v38om83r, nkuchta and a team as code owners January 6, 2025 07:42
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