#! /bin/sh # # Generic network daemon RC script. If installed as /etc/rc.d/init.d/foobar, # it source /etc/sysconfig/daemons/foobar and looks at the # variable definitions (Bourne shell syntax). Variables marked with an # asterisk are required. # # * IDENT=sshd # DESCRIPTIVE="@OPENSSH_VERSION@" # * DAEMON=/usr/sbin/sshd # DAEMON_ARGS="-p some_other_port" # ONBOOT=yes # # Source networking configuration. . /etc/sysconfig/network # Check that networking is up. [ ${NETWORKING} = "no" ] && exit 0 # Source function library, check sysconfig/daemon file and source it. . /etc/rc.d/init.d/functions [ -x $DAEMON ] || exit 0 # Some functions to make the below more readable KEYGEN=/usr/bin/ssh-keygen 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 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 echo "RSA1 key generation success" else echo "RSA1 key generation failure" exit 1 fi fi } do_rsa_keygen() { 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 echo "RSA key generation success" else echo "RSA key generation failure" exit 1 fi fi } do_dsa_keygen() { if ! test -f $DSA_KEY ; then echo -n "Generating SSH2 DSA host key: " if $KEYGEN -q -t dsa -f $DSA_KEY -C '' -N '' >&/dev/null; then echo "DSA key generation success" else echo "DSA key generation failure" exit 1 fi fi } # See how we were called. case "$1" in start) # Create keys if necessary do_rsa1_keygen do_rsa_keygen do_dsa_keygen # Start daemons. [ ! -e $LOCK ] || exit 1 echo -n "Starting $SUBSYS services: " start-stop-daemon -S -n $IDENT -x $DAEMON -- $DAEMON_ARGS sleep 1 echo . touch $LOCK ;; stop) # Stop daemons. [ -e $LOCK ] || exit 0 echo -n "Stopping $SUBSYS services: " start-stop-daemon -K -n $IDENT -x $DAEMON echo rm -f $LOCK ;; restart) $0 stop $0 start ;; *) echo "Usage: $SUBSYS {start|stop|restart}" exit 1 esac exit 0