X-Git-Url: https://git.rohieb.name/openwrt.git/blobdiff_plain/3f5c61219e3ea85f757cf1b8896a4ecd88507248..b7a32d88d7439c02b7e4cf6782f50b4f576220a6:/openwrt/package/dropbear/files/S50dropbear diff --git a/openwrt/package/dropbear/files/S50dropbear b/openwrt/package/dropbear/files/S50dropbear index c7ae0af6b..88fc28849 100755 --- a/openwrt/package/dropbear/files/S50dropbear +++ b/openwrt/package/dropbear/files/S50dropbear @@ -1,64 +1,16 @@ #!/bin/sh -# -# Starts dropbear sshd. -# - -# Make sure the dropbearkey progam exists -[ -f /usr/bin/dropbearkey ] || exit 0 - -# Check for the Dropbear RSA key -if [ ! -f /etc/dropbear/dropbear_rsa_host_key ] ; then - ( - echo Generating RSA Key... - mkdir -p /etc/dropbear - /usr/bin/dropbearkey -t rsa -f /etc/dropbear/dropbear_rsa_host_key - [ -f /etc/dropbear/dropbear_rsa_host_key ] && exec $0 $* - ) > /dev/null 2> /dev/null & - exit 0 -fi - -# Check for the Dropbear DSS key -if [ ! -f /etc/dropbear/dropbear_dss_host_key ] ; then - ( - echo Generating DSS Key... - mkdir -p /etc/dropbear - /usr/bin/dropbearkey -t dss -f /etc/dropbear/dropbear_dss_host_key - [ -f /etc/dropbear/dropbear_dss_host_key ] && exec $0 $* - ) > /dev/null 2> /dev/null & - exit 0 -fi - -umask 077 - -start() { - echo -n "Starting dropbear sshd: " - start-stop-daemon --start --quiet --pidfile /var/run/dropbear.pid --exec /usr/sbin/dropbear - echo "OK" -} -stop() { - echo -n "Stopping dropbear sshd: " - start-stop-daemon --stop --quiet --pidfile /var/run/dropbear.pid - echo "OK" -} -restart() { - stop - start -} - -case "$1" in - start) - start - ;; - stop) - stop - ;; - restart|reload) - restart - ;; - *) - echo $"Usage: $0 {start|stop|restart}" - exit 1 -esac - -exit $? +for type in rsa dss; do { + # check for keys + key=/etc/dropbear/dropbear_${type}_host_key + [ ! -f $key ] && { + # generate missing keys + mkdir -p /etc/dropbear + [ -x /usr/bin/dropbearkey ] && { + /usr/bin/dropbearkey -t $type -f $key 2>&- >&- && exec $0 $* + } & + exit 0 + } +}; done + +/usr/sbin/dropbear