diff options
| author | Andre McCurdy <armccurdy@gmail.com> | 2018-06-07 11:48:39 -0700 |
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2018-06-15 17:56:25 +0100 |
| commit | 05881bbf353f05d4c613f76b3cd16432dec239a1 (patch) | |
| tree | 5d66a1cb2cc04f224e9ac32e4eb933377efa71cf | |
| parent | 958fd9e6f9bad7f071973c942707b2573183db06 (diff) | |
| download | poky-05881bbf353f05d4c613f76b3cd16432dec239a1.tar.gz | |
openssh: only create sshd host keys which have been enabled
Previously sshd_check_keys would create a full set of all possible
sshd host keys, even if sshd_config has been set to only enable
certain key types.
Update sshd_check_keys to only create keys which have been enabled in
sshd_config (with a fallback to creating a full set of key types if
no HostKey options are defined, as before).
(From OE-Core rev: 2303d795ae96f1a60caf145a0ddf100e89c4b5b0)
Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
| -rw-r--r-- | meta/recipes-connectivity/openssh/openssh/sshd_check_keys | 42 |
1 files changed, 19 insertions, 23 deletions
diff --git a/meta/recipes-connectivity/openssh/openssh/sshd_check_keys b/meta/recipes-connectivity/openssh/openssh/sshd_check_keys index be2e2ec0a6..1931dc7153 100644 --- a/meta/recipes-connectivity/openssh/openssh/sshd_check_keys +++ b/meta/recipes-connectivity/openssh/openssh/sshd_check_keys | |||
| @@ -56,27 +56,23 @@ while true ; do | |||
| 56 | esac | 56 | esac |
| 57 | done | 57 | done |
| 58 | 58 | ||
| 59 | # parse location of keys | 59 | HOST_KEYS=$(sed -n 's/^[ \t]*HostKey[ \t]\+\(.*\)/\1/p' "${sshd_config}") |
| 60 | HOST_KEY_RSA=$(grep ^HostKey "${sshd_config}" | grep _rsa_ | tail -1 | awk ' { print $2 } ') | 60 | [ -z "${HOST_KEYS}" ] && HOST_KEYS="$SYSCONFDIR/ssh_host_rsa_key $SYSCONFDIR/ssh_host_ecdsa_key $SYSCONFDIR/ssh_host_ed25519_key" |
| 61 | [ -z "${HOST_KEY_RSA}" ] && HOST_KEY_RSA=$(grep HostKey "${sshd_config}" | grep _rsa_ | tail -1 | awk ' { print $2 } ') | ||
| 62 | [ -z "${HOST_KEY_RSA}" ] && HOST_KEY_RSA=$SYSCONFDIR/ssh_host_rsa_key | ||
| 63 | HOST_KEY_ECDSA=$(grep ^HostKey "${sshd_config}" | grep _ecdsa_ | tail -1 | awk ' { print $2 } ') | ||
| 64 | [ -z "${HOST_KEY_ECDSA}" ] && HOST_KEY_ECDSA=$(grep HostKey "${sshd_config}" | grep _ecdsa_ | tail -1 | awk ' { print $2 } ') | ||
| 65 | [ -z "${HOST_KEY_ECDSA}" ] && HOST_KEY_ECDSA=$SYSCONFDIR/ssh_host_ecdsa_key | ||
| 66 | HOST_KEY_ED25519=$(grep ^HostKey "${sshd_config}" | grep _ed25519_ | tail -1 | awk ' { print $2 } ') | ||
| 67 | [ -z "${HOST_KEY_ED25519}" ] && HOST_KEY_ED25519=$(grep HostKey "${sshd_config}" | grep _ed25519_ | tail -1 | awk ' { print $2 } ') | ||
| 68 | [ -z "${HOST_KEY_ED25519}" ] && HOST_KEY_ED25519=$SYSCONFDIR/ssh_host_ed25519_key | ||
| 69 | 61 | ||
| 70 | # create keys if necessary | 62 | for key in ${HOST_KEYS} ; do |
| 71 | if [ ! -f $HOST_KEY_RSA ]; then | 63 | [ -f $key ] && continue |
| 72 | echo " generating ssh RSA key..." | 64 | case $key in |
| 73 | generate_key $HOST_KEY_RSA rsa | 65 | *_rsa_key) |
| 74 | fi | 66 | echo " generating ssh RSA host key..." |
| 75 | if [ ! -f $HOST_KEY_ECDSA ]; then | 67 | generate_key $key rsa |
| 76 | echo " generating ssh ECDSA key..." | 68 | ;; |
| 77 | generate_key $HOST_KEY_ECDSA ecdsa | 69 | *_ecdsa_key) |
| 78 | fi | 70 | echo " generating ssh ECDSA host key..." |
| 79 | if [ ! -f $HOST_KEY_ED25519 ]; then | 71 | generate_key $key ecdsa |
| 80 | echo " generating ssh ED25519 key..." | 72 | ;; |
| 81 | generate_key $HOST_KEY_ED25519 ed25519 | 73 | *_ed25519_key) |
| 82 | fi | 74 | echo " generating ssh ED25519 host key..." |
| 75 | generate_key $key ed25519 | ||
| 76 | ;; | ||
| 77 | esac | ||
| 78 | done | ||
