]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - crypto/openssh/contrib/redhat/sshd.init.old
THIS BRANCH IS OBSOLETE, PLEASE READ:
[FreeBSD/FreeBSD.git] / crypto / openssh / contrib / redhat / sshd.init.old
1 #!/bin/bash
2 #
3 # Init file for OpenSSH server daemon
4 #
5 # chkconfig: 2345 55 25
6 # description: OpenSSH server daemon
7 #
8 # processname: sshd
9 # config: /etc/ssh/ssh_host_key
10 # config: /etc/ssh/ssh_host_key.pub
11 # config: /etc/ssh/ssh_random_seed
12 # config: /etc/ssh/sshd_config
13 # pidfile: /var/run/sshd.pid
14
15 # source function library
16 . /etc/rc.d/init.d/functions
17
18 # pull in sysconfig settings
19 [ -f /etc/sysconfig/sshd ] && . /etc/sysconfig/sshd
20
21 RETVAL=0
22 prog="sshd"
23
24 # Some functions to make the below more readable
25 KEYGEN=/usr/bin/ssh-keygen
26 SSHD=/usr/sbin/sshd
27 RSA_KEY=/etc/ssh/ssh_host_rsa_key
28 DSA_KEY=/etc/ssh/ssh_host_dsa_key
29 PID_FILE=/var/run/sshd.pid
30
31 my_success() {
32   local msg
33   if [ $# -gt 1 ]; then
34     msg="$2"
35   else
36     msg="done"
37   fi
38   case "`type -type success`" in
39     function)
40       success "$1"
41     ;;
42     *)
43       echo -n "${msg}"
44     ;;
45   esac
46 }
47 my_failure() {
48   local msg
49   if [ $# -gt 1 ]; then
50     msg="$2"
51   else
52     msg="FAILED"
53   fi
54   case "`type -type failure`" in
55     function)
56       failure "$1"
57     ;;
58     *)
59       echo -n "${msg}"
60     ;;
61   esac
62 }
63 do_rsa_keygen() {
64         if [ ! -s $RSA_KEY ]; then
65                 echo -n "Generating SSH2 RSA host key: "
66                 if $KEYGEN -q -t rsa -f $RSA_KEY -C '' -N '' >&/dev/null; then
67                         chmod 600 $RSA_KEY
68                         chmod 644 $RSA_KEY.pub
69                         my_success "RSA key generation"
70                         echo
71                 else
72                         my_failure "RSA key generation"
73                         echo
74                         exit 1
75                 fi
76         fi
77 }
78 do_dsa_keygen() {
79         if [ ! -s $DSA_KEY ]; then
80                 echo -n "Generating SSH2 DSA host key: "
81                 if $KEYGEN -q -t dsa -f $DSA_KEY -C '' -N '' >&/dev/null; then
82                         chmod 600 $DSA_KEY
83                         chmod 644 $DSA_KEY.pub
84                         my_success "DSA key generation"
85                         echo
86                 else
87                         my_failure "DSA key generation"
88                         echo
89                         exit 1
90                 fi
91         fi
92 }
93 do_restart_sanity_check() {
94         $SSHD -t
95         RETVAL=$?
96         if [ ! "$RETVAL" = 0 ]; then
97                 my_failure "Configuration file or keys"
98                 echo
99         fi
100 }
101
102
103 case "$1" in
104         start)
105                 # Create keys if necessary
106                 do_rsa_keygen;
107                 do_dsa_keygen;
108                 
109                 echo -n "Starting sshd: "
110                 if [ ! -f $PID_FILE ] ; then
111                         sshd $OPTIONS
112                         RETVAL=$?
113                         if [ "$RETVAL" = "0" ] ; then
114                                 my_success "sshd startup" "sshd"
115                                 touch /var/lock/subsys/sshd
116                         else
117                                 my_failure "sshd startup" ""
118                         fi
119                 fi
120                 echo
121                 ;;
122         stop)
123                 echo -n "Shutting down sshd: "
124                 if [ -f $PID_FILE ] ; then
125                         killproc sshd
126                         RETVAL=$?
127                         [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/sshd
128                 fi
129                 echo
130                 ;;
131         restart)
132                 do_restart_sanity_check
133                 $0 stop
134                 $0 start
135                 RETVAL=$?
136                 ;;
137         condrestart)
138                 if [ -f /var/lock/subsys/sshd ] ; then
139                         do_restart_sanity_check
140                         $0 stop
141                         $0 start
142                         RETVAL=$?
143                 fi
144                 ;;
145         status)
146                 status sshd
147                 RETVAL=$?
148                 ;;
149         *)
150                 echo "Usage: sshd {start|stop|restart|status|condrestart}"
151                 exit 1
152                 ;;
153 esac
154
155 exit $RETVAL