summaryrefslogtreecommitdiff
path: root/cloudinit
diff options
context:
space:
mode:
authorEduardo Otubo <otubo@redhat.com>2020-10-20 18:04:59 +0200
committerGitHub <noreply@github.com>2020-10-20 12:04:59 -0400
commitb0e73814db4027dba0b7dc0282e295b7f653325c (patch)
treed64aa809ed6dd8a543febe015be39ad4bbabc2ae /cloudinit
parent5a7f6818083118b45828fa0b334309449881f80a (diff)
downloadvyos-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.py6
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):