2011-11-04 18:42:46 +01:00

91 lines
2.0 KiB
Bash
Executable File

#!/bin/sh
# Script to control ssh server start/stop
# Written by Tom G. Christensen <swpkg@jupiterrise.com>
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