1#!/bin/sh
2# sshd/rc.main
3# perp runscript for sshd service
4# wcm, 2009.10.07 - 2011.02.02
5# ===
6
7exec 2>&1
8
9TARGET=${1}
10SVNAME=${2:-sshd}
11
12## generate keys:
13make_keys() {
14  if test ! -f /etc/ssh/ssh_host_key ; then
15     echo "*** ${SVNAME}: generating /etc/ssh/ssh_host_key ..."
16     /usr/bin/ssh-keygen -t rsa1 -f /etc/ssh/ssh_host_key -N ''
17  fi
18  if test ! -f /etc/ssh/ssh_host_dsa_key ; then
19     echo "*** ${SVNAME}: generating /etc/ssh/ssh_host_dsa_key ..."
20     /usr/bin/ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key -N ''
21  fi
22  if test ! -f /etc/ssh/ssh_host_rsa_key ; then
23     echo "*** ${SVNAME}: generating /etc/ssh/ssh_host_rsa_key ..."
24     /usr/bin/ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N ''
25  fi
26}
27
28
29## start target:
30start() {
31  echo "*** ${SVNAME}: starting sshd..."
32  make_keys
33  ## sshd options required for perp service:
34  ##   -D  no detach, run in foreground
35  ##   -e  log to stderr (for tinylog) instead of syslog
36  ##
37  exec \
38    /usr/sbin/sshd -D -e -f /etc/ssh/sshd_config
39}
40
41
42## reset target:
43reset() {
44  case $3 in
45    'exit' )
46        echo "*** ${SVNAME}: exited status $4" ;;
47    'signal' )
48        echo "*** ${SVNAME}: killed on signal $5" ;;
49    * )
50        echo "*** ${SVNAME}: stopped ($3)" ;;
51  esac
52  exit 0
53}
54
55
56## branch to target:
57eval ${TARGET} "$@"
58
59### EOF
60