#!/bin/sh # Script to control ssh server start/stop # Written by Tom G. Christensen SSHD=/usr/tgcware/sbin/sshd KEYGEN=/usr/tgcware/bin/ssh-keygen RSA1_KEY=/usr/tgcware/etc/ssh/ssh_host_key RSA_KEY=/usr/tgcware/etc/ssh/ssh_host_rsa_key DSA_KEY=/usr/tgcware/etc/ssh/ssh_host_dsa_key ECDSA_KEY=/usr/tgcware/etc/ssh/ssh_host_ecdsa_key ECHO=/usr/bin/echo pidfile=/var/run/sshd.pid check_pid_dir() { if [ ! -d /var/run ]; then mkdir -p /var/run chown root.sys /var/run chmod 755 /var/run fi } do_hostkeygen() { if [ ! -s $RSA1_KEY ]; then $ECHO "Generating $RSA1_KEY:\c" $KEYGEN -q -t rsa1 -f $RSA1_KEY -N '' > /dev/null 2>&1 $ECHO "." fi if [ ! -s $RSA_KEY ]; then $ECHO "Generating $RSA_KEY:\c" $KEYGEN -q -t rsa -f $RSA_KEY -N '' > /dev/null 2>&1 $ECHO "." fi if [ ! -s $DSA_KEY ]; then $ECHO "Generating $DSA_KEY:\c" $KEYGEN -q -t dsa -f $DSA_KEY -N '' > /dev/null 2>&1 $ECHO "." fi if [ ! -s $ECDSA_KEY ]; then $ECHO "Generating $ECDSA_KEY:\c" $KEYGEN -q -t ecdsa -f $ECDSA_KEY -N '' > /dev/null 2>&1 $ECHO "." fi } kill_sshd() { if [ -r $pidfile ]; then sshd_pid=`cat $pidfile` ps -p $sshd_pid | grep sshd > /dev/null if [ $? -eq 0 ]; then /usr/bin/kill -15 $sshd_pid fi fi } mode=$1 set `/usr/xpg4/bin/id -u` if [ $1 = "0" ]; then case $mode in start) kill_sshd if test -x $SSHD; then do_hostkeygen $ECHO "Starting sshd:\c" check_pid_dir $SSHD $ECHO "." fi ;; stop) kill_sshd exit 0 ;; restart) $0 start ;; *) echo "Usage: $0 {start|stop|restart}" ;; esac else echo "$0: this script must be run as root... fatal error" fi