#!/bin/bash # Init file for OpenSSH server daemon # # chkconfig: 2345 55 25 # description: OpenSSH server daemon # # processname: sshd # config: /etc/ssh/ssh_host_key # config: /etc/ssh/ssh_host_key.pub # config: /etc/ssh/ssh_random_seed # config: /etc/ssh/sshd_config # pidfile: /var/run/sshd.pid # source function library . /etc/rc.d/init.d/functions RETVAL=0 # Some functions to make the below more readable KEYGEN=/usr/bin/ssh-keygen RSA_KEY=/etc/ssh/ssh_host_key DSA_KEY=/etc/ssh/ssh_host_dsa_key PID_FILE=/var/run/sshd.pid 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" echo else failure "RSA key generation" echo exit 1 fi fi } 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 else failure "DSA key generation" echo exit 1 fi fi } case "$1" in start) # Create keys if necessary do_rsa_keygen; do_dsa_keygen; echo -n "Starting sshd: " if [ ! -f $PID_FILE ] ; then daemon sshd RETVAL=$? touch /var/lock/subsys/sshd fi echo ;; stop) echo -n "Shutting down sshd: " if [ -f $PID_FILE ] ; then killproc sshd [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/sshd fi echo ;; restart) $0 stop $0 start RETVAL=$? ;; status) status sshd RETVAL=$? ;; *) echo "Usage: sshd {start|stop|restart|status}" exit 1 ;; esac exit $RETVAL