sshd.init 1011 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. #!/bin/sh
  2. #FWINIT 50
  3. . /etc/rc.conf
  4. case $1 in
  5. autostop) ;;
  6. autostart)
  7. [[ $openssh = NO ]] && exit 0
  8. grep dropbear_flags /etc/rc.conf >/dev/null 2>&1 || dropbear_flags=NO
  9. if [[ $openssh = AUTO && $dropbear_flags != NO ]]; then
  10. echo openssh not starting: set to AUTO and dropbear is enabled
  11. exit 0
  12. fi
  13. exec sh $0 start
  14. ;;
  15. start)
  16. if [[ ! -s /etc/ssh/ssh_host_rsa_key ]]; then
  17. mkdir -p /etc/ssh
  18. if [[ ! -x /usr/bin/ssh-keygen ]]; then
  19. bothlog openssh not starting: SSH private key missing
  20. exit 0
  21. fi
  22. echo "openssh: generating SSH private key (RSA)"
  23. /usr/bin/ssh-keygen -N '' -t rsa -f /etc/ssh/ssh_host_rsa_key
  24. rv=$?
  25. echo openssh: key generation exited with code $rv
  26. [[ $rv = 0 && -s /etc/ssh/ssh_host_rsa_key ]] || exit 1
  27. fi
  28. mkdir -p /var/run/sshd
  29. mkdir -p /var/empty
  30. /usr/sbin/sshd
  31. ;;
  32. stop)
  33. if [ -e /var/run/sshd.pid ]; then
  34. kill $(cat /var/run/sshd.pid)
  35. fi
  36. ;;
  37. restart)
  38. sh $0 stop
  39. sh $0 start
  40. ;;
  41. *)
  42. echo "Usage: $0 {start | stop | restart}"
  43. exit 1
  44. ;;
  45. esac
  46. exit $?