# 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
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
- success "RSA1 key generation"
+ my_success "RSA1 key generation"
echo
else
- failure "RSA1 key generation"
+ my_failure "RSA1 key generation"
echo
exit 1
fi
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"
+ my_success "RSA key generation"
echo
else
- failure "RSA key generation"
+ my_failure "RSA key generation"
echo
exit 1
fi
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"
+ 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)
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
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=$?