91 lines
2.0 KiB
Bash
Executable File
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
|