]> andersk Git - openssh.git/blobdiff - contrib/redhat/sshd.init
- (djm) Update RPM spec file versions
[openssh.git] / contrib / redhat / sshd.init
index 83c10a885fc1b49696dc394bd3a4017fa860677f..86b040cda0e1588dd14c117abf0aa4b15145d1fc 100755 (executable)
 # source function library
 . /etc/rc.d/init.d/functions
 
+[ -f /etc/sysconfig/sshd ] && . /etc/sysconfig/sshd
+
 RETVAL=0
 
 # Some functions to make the below more readable
 KEYGEN=/usr/bin/ssh-keygen
-RSA_KEY=/etc/ssh/ssh_host_key
+RSA1_KEY=/etc/ssh/ssh_host_key
+RSA_KEY=/etc/ssh/ssh_host_rsa_key
 DSA_KEY=/etc/ssh/ssh_host_dsa_key
 PID_FILE=/var/run/sshd.pid
+my_success() {
+  local msg
+  if [ $# -gt 1 ]; then
+    msg="$2"
+  else
+    msg="done"
+  fi
+  case "`type -type success`" in
+    function)
+      success "$1"
+    ;;
+    *)
+      echo -n "${msg}"
+    ;;
+  esac
+}
+my_failure() {
+  local msg
+  if [ $# -gt 1 ]; then
+    msg="$2"
+  else
+    msg="FAILED"
+  fi
+  case "`type -type failure`" in
+    function)
+      failure "$1"
+    ;;
+    *)
+      echo -n "${msg}"
+    ;;
+  esac
+}
+do_rsa1_keygen() {
+       if ! test -f $RSA1_KEY ; then
+               echo -n "Generating SSH1 RSA host key: "
+               if $KEYGEN -q -t rsa1 -f $RSA1_KEY -C '' -N '' >&/dev/null; then
+                       my_success "RSA1 key generation"
+                       echo
+               else
+                       my_failure "RSA1 key generation"
+                       echo
+                       exit 1
+               fi
+       fi
+}
 do_rsa_keygen() {
-       if $KEYGEN -R && ! test -f $RSA_KEY ; then
-               echo -n "Generating SSH RSA host key: "
-               if $KEYGEN -q -b 1024 -f $RSA_KEY -C '' -N '' >&/dev/null; then
-                       success "RSA key generation"
+       if ! test -f $RSA_KEY ; then
+               echo -n "Generating SSH2 RSA host key: "
+               if $KEYGEN -q -t rsa -f $RSA_KEY -C '' -N '' >&/dev/null; then
+                       my_success "RSA key generation"
                        echo
                else
-                       failure "RSA key generation"
+                       my_failure "RSA key generation"
                        echo
                        exit 1
                fi
@@ -37,33 +85,44 @@ do_rsa_keygen() {
 }
 do_dsa_keygen() {
        if ! test -f $DSA_KEY ; then
-               echo -n "Generating SSH DSA host key: "
-               if $KEYGEN -q -d -b 1024 -f $DSA_KEY -C '' -N '' >&/dev/null; then
-                       success "DSA key generation"
+               echo -n "Generating SSH2 DSA host key: "
+               if $KEYGEN -q -t dsa -f $DSA_KEY -C '' -N '' >&/dev/null; then
+                       my_success "DSA key generation"
                        echo
                else
-                       failure "DSA key generation"
+                       my_failure "DSA key generation"
                        echo
                        exit 1
                fi
        fi
 }
+do_restart_sanity_check() {
+       sshd -t
+       RETVAL=$?
+       if [ ! "$RETVAL" = 0 ]; then
+               my_failure "Configuration file or keys"
+               echo
+               exit $RETVAL
+       fi
+}
+
 
 case "$1" in
        start)
                # Create keys if necessary
+               do_rsa1_keygen;
                do_rsa_keygen;
                do_dsa_keygen;
                
                echo -n "Starting sshd: "
                if [ ! -f $PID_FILE ] ; then
-                       sshd
+                       sshd $OPTIONS
                        RETVAL=$?
                        if [ "$RETVAL" = "0" ] ; then
-                               success "sshd startup"
+                               my_success "sshd startup" "sshd"
                                touch /var/lock/subsys/sshd
                        else
-                               failure "sshd startup"
+                               my_failure "sshd startup" ""
                        fi
                fi
                echo
@@ -72,17 +131,20 @@ case "$1" in
                echo -n "Shutting down sshd: "
                if [ -f $PID_FILE ] ; then
                        killproc sshd
+                       RETVAL=$?
                        [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/sshd
                fi
                echo
                ;;
        restart)
+               do_restart_sanity_check
                $0 stop
                $0 start
                RETVAL=$?
                ;;
        condrestart)
                if [ -f /var/lock/subsys/sshd ] ; then
+                       do_restart_sanity_check
                        $0 stop
                        $0 start
                        RETVAL=$?
This page took 0.289141 seconds and 4 git commands to generate.