diff options
Diffstat (limited to 'core/openssh/sshd')
-rwxr-xr-x | core/openssh/sshd | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/core/openssh/sshd b/core/openssh/sshd new file mode 100755 index 000000000..2ee1091f0 --- /dev/null +++ b/core/openssh/sshd @@ -0,0 +1,48 @@ +#!/bin/bash + +. /etc/rc.conf +. /etc/rc.d/functions +. /etc/conf.d/sshd + +PIDFILE=/var/run/sshd.pid +PID=$(cat $PIDFILE 2>/dev/null) +if ! readlink -q /proc/$PID/exe | grep -q '^/usr/sbin/sshd'; then + PID= + rm $PIDFILE 2>/dev/null +fi + +case "$1" in + start) + stat_busy "Starting Secure Shell Daemon" + [ -f /etc/ssh/ssh_host_key ] || { /usr/bin/ssh-keygen -t rsa1 -N "" -f /etc/ssh/ssh_host_key >/dev/null; } + [ -f /etc/ssh/ssh_host_rsa_key ] || { /usr/bin/ssh-keygen -t rsa -N "" -f /etc/ssh/ssh_host_rsa_key >/dev/null; } + [ -f /etc/ssh/ssh_host_dsa_key ] || { /usr/bin/ssh-keygen -t dsa -N "" -f /etc/ssh/ssh_host_dsa_key >/dev/null; } + [ -f /etc/ssh/ssh_host_ecdsa_key ] || { /usr/bin/ssh-keygen -t ecdsa -N "" -f /etc/ssh/ssh_host_ecdsa_key >/dev/null; } + [ -d /var/empty ] || mkdir -p /var/empty + [ -z "$PID" ] && /usr/sbin/sshd $SSHD_ARGS + if [ $? -gt 0 ]; then + stat_fail + else + add_daemon sshd + stat_done + fi + ;; + stop) + stat_busy "Stopping Secure Shell Daemon" + [ ! -z "$PID" ] && kill $PID &> /dev/null + if [ $? -gt 0 ]; then + stat_fail + else + rm_daemon sshd + stat_done + fi + ;; + restart) + $0 stop + sleep 1 + $0 start + ;; + *) + echo "usage: $0 {start|stop|restart}" +esac +exit 0 |