#!/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 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 success "RSA1 key generation" echo else failure "RSA1 key generation" echo 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 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 SSH2 DSA host key: " if $KEYGEN -q -t dsa -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_rsa1_keygen; do_rsa_keygen; do_dsa_keygen; echo -n "Starting sshd: " if [ ! -f $PID_FILE ] ; then sshd RETVAL=$? if [ "$RETVAL" = "0" ] ; then success "sshd startup" touch /var/lock/subsys/sshd else failure "sshd startup" fi fi echo ;; stop) 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) $0 stop $0 start RETVAL=$? ;; condrestart) if [ -f /var/lock/subsys/sshd ] ; then $0 stop $0 start RETVAL=$? fi ;; status) status sshd RETVAL=$? ;; *) echo "Usage: sshd {start|stop|restart|status|condrestart}" exit 1 ;; esac exit $RETVAL