#!/bin/sh # Init file for OpenSSH server daemon # # chkconfig: 2345 54 26 # description: OpenSSH server daemon # # processname: sshd # config: /etc/openssh/sshd_config # pidfile: /var/run/sshd.pid WITHOUT_RC_COMPAT=1 # Source function library. . /etc/init.d/functions # Source networking configuration. SourceIfNotEmpty /etc/sysconfig/network EXTRAOPTIONS= SSH1_RSA_KEY=/etc/openssh/ssh_host_key SSH2_RSA_KEY=/etc/openssh/ssh_host_rsa_key SSH2_DSA_KEY=/etc/openssh/ssh_host_dsa_key KEYGEN=/usr/bin/ssh-keygen PIDFILE=/var/run/sshd.pid LOCKFILE=/var/lock/subsys/sshd # Source config. SourceIfNotEmpty /etc/sysconfig/sshd RETVAL=0 do_keygen() { local kfile ktype kname kfile="$1" shift ktype="$1" shift kname="$1" shift if [ ! -s "$kfile" ]; then printf $"Generating %s host key: " "$kname" if $KEYGEN -q -t "$ktype" -f "$kfile" -C '' -N '' >/dev/null 2>&1; then success "$kname key generation" echo else failure "$kname key generation" echo exit 1 fi fi } do_config_sanity_check() { action $"Checking sshd configuration:" sshd $EXTRAOPTIONS -t || exit } start() { # Create keys if necessary do_keygen "$SSH1_RSA_KEY" rsa1 "SSH1 RSA" do_keygen "$SSH2_RSA_KEY" rsa "SSH2 RSA" do_keygen "$SSH2_DSA_KEY" dsa "SSH2 DSA" is_yes "$NETWORKING" || return 0 start_daemon --pidfile "$PIDFILE" --lockfile "$LOCKFILE" --expect-user root -- sshd $EXTRAOPTIONS RETVAL=$? return $RETVAL } stop() { stop_daemon --pidfile "$PIDFILE" --lockfile "$LOCKFILE" --expect-user root sshd RETVAL=$? return $RETVAL } reload() { do_config_sanity_check msg_reloading sshd stop_daemon --pidfile "$PIDFILE" --expect-user root -HUP sshd RETVAL=$? return $RETVAL } restart() { do_config_sanity_check stop start } # See how we were called. case "$1" in start) start ;; stop) stop ;; reload) reload ;; restart) restart ;; condstop) if [ -e "$LOCKFILE" ]; then stop fi ;; condrestart) if [ -e "$LOCKFILE" ]; then restart fi ;; condreload) if [ -e "$LOCKFILE" ]; then reload fi ;; check) do_config_sanity_check ;; status) status --pidfile "$PIDFILE" --expect-user root sshd RETVAL=$? ;; *) msg_usage "${0##*/} {start|stop|reload|restart|condstop|condrestart|condreload|check|status}" RETVAL=1 esac exit $RETVAL