blob: 2865dee8f206ffb3113cec6da860835fe4948db8 [file] [log] [blame]
#!/bin/sh
#
# Starts dropbear sshd.
#
# Make sure this load is used for test
[ -f /tmp/DEBUG ] || exit 0
start() {
# Make sure dropbear directory exists.
# /etc/dropbear links to /tmp/dropbear, which we can write to.
if mkdir -p /config/dropbear; then
ln -sf /config/dropbear /tmp
else
mkdir -p /tmp/dropbear
fi
# Check for the dropbear keys
umask 077
K1=/etc/dropbear/dropbear_rsa_host_key
K2=/etc/dropbear/dropbear_dss_host_key
if ! dropbearkey -y -f $K1 >/dev/null 2>&1; then
[ -e "$K1" ] && echo "BUG: $K1 existed, but invalid!"
rm -f $K1
dropbearkey -t rsa -f $K1
fi
if ! dropbearkey -y -f $K2 >/dev/null 2>&1; then
[ -e "$K2" ] && echo "BUG: $K2 existed, but invalid!"
rm -f $K2
dropbearkey -t dss -f $K2
fi
babysit 60 dropbear -s -F -E 2>&1 | logos dropbear &
}
stop() {
# we could use pkill dropbear here, but then it would kill running
# ssh sessions, which is not what we want. So use the pidfile
# instead. But we do want to make sure the babysitter stays dead.
pkillwait -f 'babysit [0-9]+ dropbear'
start-stop-daemon -K -q -p /var/run/dropbear.pid
}
restart() {
stop
start
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart|reload)
restart
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
esac