diff options
author | Eduardo Otubo <otubo@redhat.com> | 2020-10-20 18:04:59 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-10-20 12:04:59 -0400 |
commit | b0e73814db4027dba0b7dc0282e295b7f653325c (patch) | |
tree | d64aa809ed6dd8a543febe015be39ad4bbabc2ae /cloudinit | |
parent | 5a7f6818083118b45828fa0b334309449881f80a (diff) | |
download | vyos-cloud-init-b0e73814db4027dba0b7dc0282e295b7f653325c.tar.gz vyos-cloud-init-b0e73814db4027dba0b7dc0282e295b7f653325c.zip |
ssh_util: handle non-default AuthorizedKeysFile config (#586)
The following commit merged all ssh keys into a default user file
`~/.ssh/authorized_keys` in sshd_config had multiple files configured for
AuthorizedKeysFile:
commit f1094b1a539044c0193165a41501480de0f8df14
Author: Eduardo Otubo <otubo@redhat.com>
Date: Thu Dec 5 17:37:35 2019 +0100
Multiple file fix for AuthorizedKeysFile config (#60)
This commit ignored the case when sshd_config would have a single file for
AuthorizedKeysFile, but a non default configuration, for example
`~/.ssh/authorized_keys_foobar`. In this case cloud-init would grab all keys
from this file and write a new one, the default `~/.ssh/authorized_keys`
causing the bug.
rhbz: #1862967
Signed-off-by: Eduardo Otubo <otubo@redhat.com>
Diffstat (limited to 'cloudinit')
-rw-r--r-- | cloudinit/ssh_util.py | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/cloudinit/ssh_util.py b/cloudinit/ssh_util.py index c08042d6..d5113996 100644 --- a/cloudinit/ssh_util.py +++ b/cloudinit/ssh_util.py @@ -262,13 +262,13 @@ def extract_authorized_keys(username, sshd_cfg_file=DEF_SSHD_CFG): except (IOError, OSError): # Give up and use a default key filename - auth_key_fns[0] = default_authorizedkeys_file + auth_key_fns.append(default_authorizedkeys_file) util.logexc(LOG, "Failed extracting 'AuthorizedKeysFile' in SSH " "config from %r, using 'AuthorizedKeysFile' file " "%r instead", DEF_SSHD_CFG, auth_key_fns[0]) - # always store all the keys in the user's private file - return (default_authorizedkeys_file, parse_authorized_keys(auth_key_fns)) + # always store all the keys in the first file configured on sshd_config + return (auth_key_fns[0], parse_authorized_keys(auth_key_fns)) def setup_user_keys(keys, username, options=None): |