summaryrefslogtreecommitdiff
path: root/openssh
diff options
context:
space:
mode:
authorJuergen Daubert <jue@jue.li>2015-02-20 17:05:43 +0100
committerJuergen Daubert <jue@jue.li>2015-02-20 17:05:43 +0100
commitbf247a6f9eccf67b9934f0deb53ee9904425ba3d (patch)
tree8f57fa6538a80ed01ec4f1f38f5824c48b0e756b /openssh
parentd6bc4741d6d04c29252037e6e4bf0cb2e40f359c (diff)
downloadcore-bf247a6f9eccf67b9934f0deb53ee9904425ba3d.tar.gz
core-bf247a6f9eccf67b9934f0deb53ee9904425ba3d.tar.xz
openssh: improved rc script, drop rsa1 key creation
Diffstat (limited to 'openssh')
-rw-r--r--openssh/.md5sum2
-rw-r--r--openssh/Pkgfile2
-rwxr-xr-xopenssh/sshd54
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

Generated by cgit