Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

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 <xiwang5@microsoft.com>
@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