From: Victor Martinez Date: Sun, 6 Mar 2016 19:09:52 +0000 (+0000) Subject: openssh: updated sshd script X-Git-Url: http://gitweb/?a=commitdiff_plain;h=2084faa4f18d8e9d5709da3d5c473e3af0d82a68;p=crossrootfs.git openssh: updated sshd script --- diff --git a/openssh/sshd b/openssh/sshd index 11a1c26..7abaf02 100755 --- a/openssh/sshd +++ b/openssh/sshd @@ -3,37 +3,50 @@ # /etc/rc.d/sshd: start/stop ssh daemon # -case $1 in -start) - if [ ! -f /etc/ssh/ssh_host_key ]; then - /usr/bin/ssh-keygen -t rsa1 -N "" -f /etc/ssh/ssh_host_key > /dev/null +SSD=/sbin/start-stop-daemon +PROG=/usr/sbin/sshd +PID=/var/run/sshd.pid +KEYGEN=/usr/bin/ssh-keygen +SSHDIR=/etc/ssh + +create_keys() { + if [ ! -f $SSHDIR/ssh_host_rsa_key ]; then + $KEYGEN -q -t rsa -b 2048 -N "" -f $SSHDIR/ssh_host_rsa_key fi - if [ ! -f /etc/ssh/ssh_host_rsa_key ]; then - /usr/bin/ssh-keygen -t rsa -N "" -f /etc/ssh/ssh_host_rsa_key > /dev/null + if [ ! -f $SSHDIR/ssh_host_dsa_key ]; then + $KEYGEN -q -t dsa -N "" -f $SSHDIR/ssh_host_dsa_key fi - if [ ! -f /etc/ssh/ssh_host_dsa_key ]; then - /usr/bin/ssh-keygen -t dsa -N "" -f /etc/ssh/ssh_host_dsa_key > /dev/null + if [ ! -f $SSHDIR/ssh_host_ecdsa_key ]; then + $KEYGEN -q -t ecdsa -b 521 -N "" -f $SSHDIR/ssh_host_ecdsa_key fi - if [ ! -f /etc/ssh/ssh_host_ecdsa_key ]; then - /usr/bin/ssh-keygen -t ecdsa -N "" -f /etc/ssh/ssh_host_ecdsa_key > /dev/null + if [ ! -f $SSHDIR/ssh_host_ed25519_key ]; then + $KEYGEN -q -t ed25519 -N "" -f $SSHDIR/ssh_host_ed25519_key fi - /usr/sbin/sshd +} + +case $1 in +start) + create_keys + $SSD --start --pidfile $PID --exec $PROG ;; stop) - if [ -f /var/run/sshd.pid ]; then - kill $(< /var/run/sshd.pid) - rm -f /var/run/sshd.pid - else - killall -q /usr/sbin/sshd - fi + $SSD --stop --retry 10 --pidfile $PID ;; restart) $0 stop - sleep 2 $0 start ;; +status) + $SSD --status --pidfile $PID + case $? in + 0) echo "$PROG is running with pid $(cat $PID)" ;; + 1) echo "$PROG is not running but the pid file $PID exists" ;; + 3) echo "$PROG is not running" ;; + 4) echo "Unable to determine the program status" ;; + esac + ;; *) - echo "usage: $0 [start|stop|restart]" + echo "usage: $0 [start|stop|restart|status]" ;; esac