#!/bin/sh # Start/stop/restart the dropbear secure shell server: # Terminate the script now if we have no interface with an IP address: if ! `ip -f inet -o addr show | grep -v " lo " 1>/dev/null 2>/dev/null` ; then exit 1 fi dropbear_start() { # Create host keys if needed. if [ ! -f /etc/dropbear/dropbear_rsa_host_key ]; then /bin/dropbearkey -t rsa -f /etc/dropbear/dropbear_rsa_host_key fi if [ ! -f /etc/dropbear/dropbear_dss_host_key ]; then /bin/dropbearkey -t dss -f /etc/dropbear/dropbear_dss_host_key fi touch /var/log/lastlog # The file is missing in the installer /sbin/dropbear -b /etc/motd.net 2>> /var/log/dropbear.log } dropbear_stop() { killall dropbear } dropbear_restart() { if [ -r /var/run/dropbear.pid ]; then echo "WARNING: killing listener process only. To kill every dropbear process, you " echo " must use 'rc.dropbear stop'. 'rc.dropbear restart' kills only the " echo " parent dropbear to allow an admin logged in through dropbear to use " echo " 'rc.dropbear restart' without being cut off. If dropbear has been " echo " upgraded, new connections will now use the new version, which should " echo " be a safe enough approach." kill `cat /var/run/dropbear.pid` else echo "WARNING: There does not appear to be a parent instance of dropbear running." echo " If you really want to kill all running instances of dropbear " echo " (including any sessions currently in use), run " echo " '/etc/rc.d/rc.dropbear stop' instead." exit 1 fi sleep 1 dropbear_start } case "$1" in 'start') dropbear_start ;; 'stop') dropbear_stop ;; 'restart') dropbear_restart ;; *) echo "usage $0 start|stop|restart" esac