#!@bash@/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 source @initscripts@/functions # pull in sysconfig settings [ -f /etc/sysconfig/sshd ] && . /etc/sysconfig/sshd RETVAL=0 prog="sshd" softdeps="@softdeps@" deps="@deps@" # Some functions to make the below more readable KEYGEN=@sshd@/bin/ssh-keygen SSHD=@sshd@/sbin/sshd 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 OPTIONS="-h $DSA_KEY -h RSA_KEY -h RSA1_KEY" do_rsa1_keygen() { if [ ! -s $RSA1_KEY ]; then echo -n $"Generating SSH1 RSA host key: " if $KEYGEN -q -t rsa1 -f $RSA1_KEY -C '' -N '' >&/dev/null; then @coreutils@/bin/chmod 600 $RSA1_KEY @coreutils@/bin/chmod 644 $RSA1_KEY.pub success $"RSA1 key generation" echo else failure $"RSA1 key generation" echo exit 1 fi fi } do_rsa_keygen() { if [ ! -s $RSA_KEY ]; then echo -n $"Generating SSH2 RSA host key: " if $KEYGEN -q -t rsa -f $RSA_KEY -C '' -N '' >&/dev/null; then @coreutils@/bin/chmod 600 $RSA_KEY @coreutils@/bin/chmod 644 $RSA_KEY.pub success $"RSA key generation" echo else failure $"RSA key generation" echo exit 1 fi fi } do_dsa_keygen() { if [ ! -s $DSA_KEY ]; then echo -n $"Generating SSH2 DSA host key: " if $KEYGEN -q -t dsa -f $DSA_KEY -C '' -N '' >&/dev/null; then @coreutils@/bin/chmod 600 $DSA_KEY @coreutils@/bin/chmod 644 $DSA_KEY.pub success $"DSA key generation" echo else failure $"DSA key generation" echo exit 1 fi fi } do_restart_sanity_check() { $SSHD -t RETVAL=$? if [ ! "$RETVAL" = 0 ]; then failure $"Configuration file or keys are invalid" echo fi } startService() { # Create keys if necessary do_rsa1_keygen do_rsa_keygen do_dsa_keygen echo -n $"Starting $prog:" #@initscripts@/sbin/initlog -c "$SSHD $OPTIONS" && success || failure $SSHD $OPTIONS RETVAL=$? [ "$RETVAL" = 0 ] && @coreutils@/bin/touch /var/lock/subsys/sshd echo } stopService() { echo -n $"Stopping $prog:" #killproc $SSHD -TERM @coreutils@/bin/kill `@coreutils@/bin/cat /var/run/sshd.pid` RETVAL=$? [ "$RETVAL" = 0 ] && @coreutils@/bin/rm -f /var/lock/subsys/sshd echo } reload() { echo -n $"Reloading $prog:" killproc $SSHD -HUP RETVAL=$? echo } case "$1" in start) start ;; stop) stop ;; restart) stop start ;; reload) reload ;; condrestart) if [ -f /var/lock/subsys/sshd ] ; then do_restart_sanity_check if [ "$RETVAL" = 0 ] ; then stop # avoid race sleep 3 start fi fi ;; status) status $SSHD RETVAL=$? ;; name) name ;; *) echo $"Usage: $0 {start|stop|restart|reload|condrestart|status}" RETVAL=1 esac exit $RETVAL