]> andersk Git - gssapi-openssh.git/blob - openssh/contrib/redhat/sshd.init
Import of OpenSSH 3.2.2p1
[gssapi-openssh.git] / openssh / contrib / redhat / sshd.init
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 RSA1_KEY=/etc/ssh/ssh_host_key
28 RSA_KEY=/etc/ssh/ssh_host_rsa_key
29 DSA_KEY=/etc/ssh/ssh_host_dsa_key
30 PID_FILE=/var/run/sshd.pid
31
32 do_rsa1_keygen() {
33         if [ ! -s $RSA1_KEY ]; then
34                 echo -n $"Generating SSH1 RSA host key: "
35                 if $KEYGEN -q -t rsa1 -f $RSA1_KEY -C '' -N '' >&/dev/null; then
36                         chmod 600 $RSA1_KEY
37                         chmod 644 $RSA1_KEY.pub
38                         success $"RSA1 key generation"
39                         echo
40                 else
41                         failure $"RSA1 key generation"
42                         echo
43                         exit 1
44                 fi
45         fi
46 }
47
48 do_rsa_keygen() {
49         if [ ! -s $RSA_KEY ]; then
50                 echo -n $"Generating SSH2 RSA host key: "
51                 if $KEYGEN -q -t rsa -f $RSA_KEY -C '' -N '' >&/dev/null; then
52                         chmod 600 $RSA_KEY
53                         chmod 644 $RSA_KEY.pub
54                         success $"RSA key generation"
55                         echo
56                 else
57                         failure $"RSA key generation"
58                         echo
59                         exit 1
60                 fi
61         fi
62 }
63
64 do_dsa_keygen() {
65         if [ ! -s $DSA_KEY ]; then
66                 echo -n $"Generating SSH2 DSA host key: "
67                 if $KEYGEN -q -t dsa -f $DSA_KEY -C '' -N '' >&/dev/null; then
68                         chmod 600 $DSA_KEY
69                         chmod 644 $DSA_KEY.pub
70                         success $"DSA key generation"
71                         echo
72                 else
73                         failure $"DSA key generation"
74                         echo
75                         exit 1
76                 fi
77         fi
78 }
79
80 do_restart_sanity_check()
81 {
82         $SSHD -t
83         RETVAL=$?
84         if [ ! "$RETVAL" = 0 ]; then
85                 failure $"Configuration file or keys are invalid"
86                 echo
87         fi
88 }
89
90 start()
91 {
92         # Create keys if necessary
93         do_rsa1_keygen
94         do_rsa_keygen
95         do_dsa_keygen
96
97         echo -n $"Starting $prog:"
98         initlog -c "$SSHD $OPTIONS" && success || failure
99         RETVAL=$?
100         [ "$RETVAL" = 0 ] && touch /var/lock/subsys/sshd
101         echo
102 }
103
104 stop()
105 {
106         echo -n $"Stopping $prog:"
107         killproc $SSHD -TERM
108         RETVAL=$?
109         [ "$RETVAL" = 0 ] && rm -f /var/lock/subsys/sshd
110         echo
111 }
112
113 reload()
114 {
115         echo -n $"Reloading $prog:"
116         killproc $SSHD -HUP
117         RETVAL=$?
118         echo
119 }
120
121 case "$1" in
122         start)
123                 start
124                 ;;
125         stop)
126                 stop
127                 ;;
128         restart)
129                 stop
130                 start
131                 ;;
132         reload)
133                 reload
134                 ;;
135         condrestart)
136                 if [ -f /var/lock/subsys/sshd ] ; then
137                         do_restart_sanity_check
138                         if [ "$RETVAL" = 0 ] ; then
139                                 stop
140                                 # avoid race
141                                 sleep 3
142                                 start
143                         fi
144                 fi
145                 ;;
146         status)
147                 status $SSHD
148                 RETVAL=$?
149                 ;;
150         *)
151                 echo $"Usage: $0 {start|stop|restart|reload|condrestart|status}"
152                 RETVAL=1
153 esac
154 exit $RETVAL
This page took 0.092062 seconds and 5 git commands to generate.