]> git.pld-linux.org Git - packages/openssh.git/blobdiff - opensshd.init
- STIL NOT TESTED
[packages/openssh.git] / opensshd.init
index 1dd02e15bfce0d860c057cda383b30f0666ff4e5..7cfea0e59d891e0df7047e35cda4ae299fa3baa3 100644 (file)
 [ -f /etc/sysconfig/sshd ] && . /etc/sysconfig/sshd
 
 # Check that networking is up.
-if [ "${NETWORKING}" = "no" ]; then
-       echo "WARNING: Networking is down. Sshd can't be runed."
-       exit 1
+if is_no "${NETWORKING}"; then
+        msg_network_down OpenSSH
+        exit 1
 fi
-
+                       
 
 # See how we were called.
 case "$1" in
   start)
+       # generate new keys with empty passwords if they do not exist
+       if [ ! -f /etc/ssh/ssh_host_key -o ! -s /etc/ssh/ssh_host_key ]; then
+           /usr/bin/ssh-keygen -t rsa1 -f /etc/ssh/ssh_host_key -N '' 1>&2
+           chmod 600 /etc/ssh/ssh_host_key
+       fi
+       if [ ! -f /etc/ssh/ssh_host_rsa_key -o ! -s /etc/ssh/ssh_host_rsa_key ]; then
+           /usr/bin/ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N '' 1>&2
+           chmod 600 /etc/ssh/ssh_host_rsa_key
+       fi
+       if [ ! -f /etc/ssh/ssh_host_dsa_key -o ! -s /etc/ssh/ssh_host_dsa_key ]; then
+           /usr/bin/ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key -N '' 1>&2
+           chmod 600 /etc/ssh/ssh_host_dsa_key
+       fi
+
+       if [ ! -f /etc/ssh/ssh_host_key ]; then
+               msg_not_running OpenSSH
+               nls "No SSH host key found! You must run \"$0 init\" first."
+               exit 1
+       fi
+
        # Check if the service is already running?
        if [ ! -f /var/lock/subsys/sshd ]; then
-               show Starting OpenSSHd
-               daemon sshd -h /etc/ssh/ssh_host_key
+               msg_starting OpenSSH
+               daemon /usr/sbin/sshd 
+               RETVAL=$?
+               [ $RETVAL -eq 0 ] && touch /var/lock/subsys/sshd                
        else
-               echo "OpenSSHd already is running"
+               msg_already_running OpenSSH
        fi
-       touch /var/lock/subsys/sshd
        ;;
   stop)
-       show Stopping OpenSSHd
-       killproc sshd
-       rm -f /var/run/sshd.pid
-       rm -f /var/lock/subsys/sshd
+        if [ -f /var/lock/subsys/sshd ]; then
+               msg_stopping OpenSSH
+               killproc sshd
+               rm -f /var/run/sshd.pid /var/lock/subsys/sshd >/dev/null 2>&1
+       else
+               msg_not_running OpenSSH
+               exit 1
+       fi      
        ;;
-  restart|reload)
+  restart)
        $0 stop
        $0 start
        ;;
   status)
        status sshd
+       exit $?
+       ;;
+  init)
+       echo "Now the SSH host key will be generated. Please note, that if you"
+       echo "will use password for the key, you will need to type it on each"
+       echo "reboot."
+       /usr/bin/ssh-keygen -t rsa1 -f /etc/ssh/ssh_host_key
+       chmod 600 /etc/ssh/ssh_host_key
+       /usr/bin/ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
+       chmod 600 /etc/ssh/ssh_host_rsa_key
+        /usr/bin/ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key
+       chmod 600 /etc/ssh/ssh_host_dsa_key
+       exit $?
+       ;;
+  reload)
+       msg_reloading OpenSSH
+       killproc sshd -HUP
        ;;
   *)
-       echo "Usage: $0 {start|stop|status|restart|reload}"
+       msg_usage "$0 {start|stop|init|status|restart|reload}"
        exit 1
 esac
 
-exit 0
-
+exit $RETVAL
This page took 0.054811 seconds and 4 git commands to generate.