diff options
Diffstat (limited to 'meta/recipes-connectivity/openssh/openssh/init')
-rw-r--r-- | meta/recipes-connectivity/openssh/openssh/init | 69 |
1 files changed, 3 insertions, 66 deletions
diff --git a/meta/recipes-connectivity/openssh/openssh/init b/meta/recipes-connectivity/openssh/openssh/init index 386628afc8..34ba0f8460 100644 --- a/meta/recipes-connectivity/openssh/openssh/init +++ b/meta/recipes-connectivity/openssh/openssh/init | |||
@@ -19,25 +19,6 @@ fi | |||
19 | [ -z "$SYSCONFDIR" ] && SYSCONFDIR=/etc/ssh | 19 | [ -z "$SYSCONFDIR" ] && SYSCONFDIR=/etc/ssh |
20 | mkdir -p $SYSCONFDIR | 20 | mkdir -p $SYSCONFDIR |
21 | 21 | ||
22 | parse_sshd_opts() { | ||
23 | set -- ${SSHD_OPTS} -- | ||
24 | sshd_config=/etc/ssh/sshd_config | ||
25 | while true ; do | ||
26 | case "$1" in | ||
27 | -f*) if [ "$1" = "-f" ] ; then | ||
28 | sshd_config="$2" | ||
29 | shift | ||
30 | else | ||
31 | sshd_config="${1#-f}" | ||
32 | fi | ||
33 | shift | ||
34 | ;; | ||
35 | --) shift; break;; | ||
36 | *) shift;; | ||
37 | esac | ||
38 | done | ||
39 | } | ||
40 | |||
41 | check_for_no_start() { | 22 | check_for_no_start() { |
42 | # forget it if we're trying to start, and /etc/ssh/sshd_not_to_be_run exists | 23 | # forget it if we're trying to start, and /etc/ssh/sshd_not_to_be_run exists |
43 | if [ -e $SYSCONFDIR/sshd_not_to_be_run ]; then | 24 | if [ -e $SYSCONFDIR/sshd_not_to_be_run ]; then |
@@ -58,57 +39,13 @@ check_config() { | |||
58 | /usr/sbin/sshd -t $SSHD_OPTS || exit 1 | 39 | /usr/sbin/sshd -t $SSHD_OPTS || exit 1 |
59 | } | 40 | } |
60 | 41 | ||
61 | check_keys() { | ||
62 | # parse location of keys | ||
63 | local HOST_KEY_RSA | ||
64 | local HOST_KEY_DSA | ||
65 | local HOST_KEY_ECDSA | ||
66 | local HOST_KEY_ED25519 | ||
67 | |||
68 | parse_sshd_opts | ||
69 | HOST_KEY_RSA=$(grep ^HostKey "${sshd_config}" | grep _rsa_ | tail -1 | awk ' { print $2 } ') | ||
70 | [ -z "${HOST_KEY_RSA}" ] && HOST_KEY_RSA=$(grep HostKey "${sshd_config}" | grep _rsa_ | tail -1 | awk ' { print $2 } ') | ||
71 | [ -z "${HOST_KEY_RSA}" ] && HOST_KEY_RSA=$SYSCONFDIR/ssh_host_rsa_key | ||
72 | HOST_KEY_DSA=$(grep ^HostKey "${sshd_config}" | grep _dsa_ | tail -1 | awk ' { print $2 } ') | ||
73 | [ -z "${HOST_KEY_DSA}" ] && HOST_KEY_DSA=$(grep HostKey "${sshd_config}" | grep _dsa_ | tail -1 | awk ' { print $2 } ') | ||
74 | [ -z "${HOST_KEY_DSA}" ] && HOST_KEY_DSA=$SYSCONFDIR/ssh_host_dsa_key | ||
75 | HOST_KEY_ECDSA=$(grep ^HostKey "${sshd_config}" | grep _ecdsa_ | tail -1 | awk ' { print $2 } ') | ||
76 | [ -z "${HOST_KEY_ECDSA}" ] && HOST_KEY_ECDSA=$(grep HostKey "${sshd_config}" | grep _ecdsa_ | tail -1 | awk ' { print $2 } ') | ||
77 | [ -z "${HOST_KEY_ECDSA}" ] && HOST_KEY_ECDSA=$SYSCONFDIR/ssh_host_ecdsa_key | ||
78 | HOST_KEY_ED25519=$(grep ^HostKey "${sshd_config}" | grep _ed25519_ | tail -1 | awk ' { print $2 } ') | ||
79 | [ -z "${HOST_KEY_ED25519}" ] && HOST_KEY_ED25519=$(grep HostKey "${sshd_config}" | grep _ed25519_ | tail -1 | awk ' { print $2 } ') | ||
80 | [ -z "${HOST_KEY_ED25519}" ] && HOST_KEY_ED25519=$SYSCONFDIR/ssh_host_ed25519_key | ||
81 | |||
82 | # create keys if necessary | ||
83 | if [ ! -f $HOST_KEY_RSA ]; then | ||
84 | echo " generating ssh RSA key..." | ||
85 | mkdir -p $(dirname $HOST_KEY_RSA) | ||
86 | ssh-keygen -q -f $HOST_KEY_RSA -N '' -t rsa | ||
87 | fi | ||
88 | if [ ! -f $HOST_KEY_ECDSA ]; then | ||
89 | echo " generating ssh ECDSA key..." | ||
90 | mkdir -p $(dirname $HOST_KEY_ECDSA) | ||
91 | ssh-keygen -q -f $HOST_KEY_ECDSA -N '' -t ecdsa | ||
92 | fi | ||
93 | if [ ! -f $HOST_KEY_DSA ]; then | ||
94 | echo " generating ssh DSA key..." | ||
95 | mkdir -p $(dirname $HOST_KEY_DSA) | ||
96 | ssh-keygen -q -f $HOST_KEY_DSA -N '' -t dsa | ||
97 | fi | ||
98 | if [ ! -f $HOST_KEY_ED25519 ]; then | ||
99 | echo " generating ssh ED25519 key..." | ||
100 | mkdir -p $(dirname $HOST_KEY_ED25519) | ||
101 | ssh-keygen -q -f $HOST_KEY_ED25519 -N '' -t ed25519 | ||
102 | fi | ||
103 | } | ||
104 | |||
105 | export PATH="${PATH:+$PATH:}/usr/sbin:/sbin" | 42 | export PATH="${PATH:+$PATH:}/usr/sbin:/sbin" |
106 | 43 | ||
107 | case "$1" in | 44 | case "$1" in |
108 | start) | 45 | start) |
109 | check_for_no_start | 46 | check_for_no_start |
110 | echo "Starting OpenBSD Secure Shell server: sshd" | 47 | echo "Starting OpenBSD Secure Shell server: sshd" |
111 | check_keys | 48 | @LIBEXECDIR@/sshd_check_keys |
112 | check_privsep_dir | 49 | check_privsep_dir |
113 | start-stop-daemon -S -p $PIDFILE -x /usr/sbin/sshd -- $SSHD_OPTS | 50 | start-stop-daemon -S -p $PIDFILE -x /usr/sbin/sshd -- $SSHD_OPTS |
114 | echo "done." | 51 | echo "done." |
@@ -121,7 +58,7 @@ case "$1" in | |||
121 | 58 | ||
122 | reload|force-reload) | 59 | reload|force-reload) |
123 | check_for_no_start | 60 | check_for_no_start |
124 | check_keys | 61 | @LIBEXECDIR@/sshd_check_keys |
125 | check_config | 62 | check_config |
126 | echo -n "Reloading OpenBSD Secure Shell server's configuration" | 63 | echo -n "Reloading OpenBSD Secure Shell server's configuration" |
127 | start-stop-daemon -K -p $PIDFILE -s 1 -x /usr/sbin/sshd | 64 | start-stop-daemon -K -p $PIDFILE -s 1 -x /usr/sbin/sshd |
@@ -129,7 +66,7 @@ case "$1" in | |||
129 | ;; | 66 | ;; |
130 | 67 | ||
131 | restart) | 68 | restart) |
132 | check_keys | 69 | @LIBEXECDIR@/sshd_check_keys |
133 | check_config | 70 | check_config |
134 | echo -n "Restarting OpenBSD Secure Shell server: sshd" | 71 | echo -n "Restarting OpenBSD Secure Shell server: sshd" |
135 | start-stop-daemon -K -p $PIDFILE --oknodo -x /usr/sbin/sshd | 72 | start-stop-daemon -K -p $PIDFILE --oknodo -x /usr/sbin/sshd |