diff options
author | Juergen Daubert <jue@jue.li> | 2015-02-20 17:05:43 +0100 |
---|---|---|
committer | Juergen Daubert <jue@jue.li> | 2015-02-20 17:05:43 +0100 |
commit | bf247a6f9eccf67b9934f0deb53ee9904425ba3d (patch) | |
tree | 8f57fa6538a80ed01ec4f1f38f5824c48b0e756b /openssh | |
parent | d6bc4741d6d04c29252037e6e4bf0cb2e40f359c (diff) | |
download | core-bf247a6f9eccf67b9934f0deb53ee9904425ba3d.tar.gz core-bf247a6f9eccf67b9934f0deb53ee9904425ba3d.tar.xz |
openssh: improved rc script, drop rsa1 key creation
Diffstat (limited to 'openssh')
-rw-r--r-- | openssh/.md5sum | 2 | ||||
-rw-r--r-- | openssh/Pkgfile | 2 | ||||
-rwxr-xr-x | openssh/sshd | 54 |
3 files changed, 34 insertions, 24 deletions
diff --git a/openssh/.md5sum b/openssh/.md5sum index 987423ec..3a71ac2b 100644 --- a/openssh/.md5sum +++ b/openssh/.md5sum @@ -1,2 +1,2 @@ 3246aa79317b1d23cae783a3bf8275d6 openssh-6.7p1.tar.gz -569e2757f9a1fcee7869c986b4c90fdd sshd +8e480e229fe9ef6587fda62ea9424aa7 sshd diff --git a/openssh/Pkgfile b/openssh/Pkgfile index fe74784b..bb841b7f 100644 --- a/openssh/Pkgfile +++ b/openssh/Pkgfile @@ -5,7 +5,7 @@ name=openssh version=6.7p1 -release=1 +release=2 source=(ftp://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/$name-$version.tar.gz sshd) build() { diff --git a/openssh/sshd b/openssh/sshd index 57189a66..7366bf8a 100755 --- a/openssh/sshd +++ b/openssh/sshd @@ -3,40 +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 - 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 +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_dsa_key ]; then - /usr/bin/ssh-keygen -t dsa -N "" -f /etc/ssh/ssh_host_dsa_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_ecdsa_key ]; then - /usr/bin/ssh-keygen -t ecdsa -N "" -f /etc/ssh/ssh_host_ecdsa_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_ed25519_key ]; then - /usr/bin/ssh-keygen -t ed25519 -N "" -f /etc/ssh/ssh_host_ed25519_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" ;; + 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 |