| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- #!/bin/sh /etc/rc.common
- # Copyright (C) 2006 OpenWrt.org
- START=50
- # Copyright (C) 2006 Carlos Sobrinho
- config_cb() {
- local cfg="$CONFIG_SECTION"
- local nopasswd
- local cfgt
- config_get cfgt "$cfg" TYPE
- case "$cfgt" in
- dropbear)
- config_get passauth $cfg PasswordAuth
- config_get port $cfg Port
- case "$passauth" in
- no|off|disabled|0) nopasswd=1;;
- esac
- DROPBEAR_ARGS="${nopasswd:+-s }${port:+-p $port}"
- ;;
- esac
- }
- keygen() {
- for keytype in rsa dss; do
- # check for keys
- key=dropbear/dropbear_${keytype}_host_key
- [ -f /tmp/$key -o -f /etc/$key ] || {
- # generate missing keys
- mkdir -p /tmp/dropbear
- [ -x /usr/bin/dropbearkey ] && {
- /usr/bin/dropbearkey -t $keytype -f /tmp/$key 2>&- >&- && exec /etc/rc.common "$initscript" start
- } &
- exit 0
- }
- done
- lock /tmp/.switch2jffs
- mkdir -p /etc/dropbear
- mv /tmp/dropbear/dropbear_* /etc/dropbear/
- lock -u /tmp/.switch2jffs
- chown root /etc/dropbear
- chmod 0700 /etc/dropbear
- }
- start() {
- [ -f /etc/dropbear/dropbear_rsa_host_key -a \
- -f /etc/dropbear/dropbear_dss_host_key ] || keygen
-
- config_load dropbear
- /usr/sbin/dropbear $DROPBEAR_ARGS
- }
- stop() {
- killall dropbear
- }
|