2
0

dropbear.init 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. #!/bin/sh /etc/rc.common
  2. # Copyright (C) 2006 OpenWrt.org
  3. START=50
  4. # Copyright (C) 2006 Carlos Sobrinho
  5. config_cb() {
  6. local cfg="$CONFIG_SECTION"
  7. local nopasswd
  8. local cfgt
  9. config_get cfgt "$cfg" TYPE
  10. case "$cfgt" in
  11. dropbear)
  12. config_get passauth $cfg PasswordAuth
  13. config_get port $cfg Port
  14. case "$passauth" in
  15. no|off|disabled|0) nopasswd=1;;
  16. esac
  17. DROPBEAR_ARGS="${nopasswd:+-s }${port:+-p $port}"
  18. ;;
  19. esac
  20. }
  21. keygen() {
  22. for keytype in rsa dss; do
  23. # check for keys
  24. key=dropbear/dropbear_${keytype}_host_key
  25. [ -f /tmp/$key -o -f /etc/$key ] || {
  26. # generate missing keys
  27. mkdir -p /tmp/dropbear
  28. [ -x /usr/bin/dropbearkey ] && {
  29. /usr/bin/dropbearkey -t $keytype -f /tmp/$key 2>&- >&- && exec /etc/rc.common "$initscript" start
  30. } &
  31. exit 0
  32. }
  33. done
  34. lock /tmp/.switch2jffs
  35. mkdir -p /etc/dropbear
  36. mv /tmp/dropbear/dropbear_* /etc/dropbear/
  37. lock -u /tmp/.switch2jffs
  38. chown root /etc/dropbear
  39. chmod 0700 /etc/dropbear
  40. }
  41. start() {
  42. [ -f /etc/dropbear/dropbear_rsa_host_key -a \
  43. -f /etc/dropbear/dropbear_dss_host_key ] || keygen
  44. config_load dropbear
  45. /usr/sbin/dropbear $DROPBEAR_ARGS
  46. }
  47. stop() {
  48. killall dropbear
  49. }