#!/bin/sh # Begin $rc_base/init.d/sshd # Based on sysklogd script from LFS-3.1 and earlier. # Rewritten by Gerard Beekmans - gerard@linuxfromscratch.org #$LastChangedBy: bdubbs $ #$Date: 2006-04-15 17:34:16 -0500 (Sat, 15 Apr 2006) $ . /etc/sysconfig/rc . $rc_functions case "$1" in start) if [ ! -e "/etc/ssh/ssh_host_key" ]; then boot_mesg "Generating SSH host key..." ssh-keygen -qf /etc/ssh/ssh_host_key -N '' -t rsa1 evaluate_retval fi for algo in rsa dsa ecdsa ed25519; do keyfile="/etc/ssh/ssh_host_${algo}_key" # If the key already exists, there is nothing to do. [ -e "${keyfile}" ] && continue case "${algo}" in rsa) algo="rsa1" ;; esac boot_mesg "Generating SSH key (${algo})..." ssh-keygen -qf "${keyfile}" -N '' -t ${algo} evaluate_retval done [ -e "/var/ipfire/remote/enablessh" ] || exit 0 # SSH is not enabled boot_mesg "Starting SSH Server..." loadproc /usr/sbin/sshd # Also prevent ssh from being killed by out of memory conditions ( sleep 3 pid=$(cat /var/run/sshd.pid 2>/dev/null) [ -n "${pid}" ] && echo "-16" > "/proc/${pid}/oom_score_adj" ) & ;; stop) boot_mesg "Stopping SSH Server..." killproc /usr/sbin/sshd ;; reload) boot_mesg "Reloading SSH Server..." reloadproc /usr/sbin/sshd ;; restart) $0 stop sleep 1 $0 start ;; status) statusproc /usr/sbin/sshd ;; *) echo "Usage: $0 {start|stop|reload|restart|status}" exit 1 ;; esac # End $rc_base/init.d/sshd