]>
Commit | Line | Data |
---|---|---|
8efc0c15 | 1 | #!/bin/bash |
3ef3d901 | 2 | # |
5aecb327 | 3 | # Init file for OpenSSH server daemon |
8efc0c15 | 4 | # |
5 | # chkconfig: 2345 55 25 | |
6 | # description: OpenSSH server daemon | |
7 | # | |
f1bcacf9 | 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 | |
8efc0c15 | 14 | |
15 | # source function library | |
16 | . /etc/rc.d/init.d/functions | |
17 | ||
3ef3d901 | 18 | # pull in sysconfig settings |
5ef815d7 | 19 | [ -f /etc/sysconfig/sshd ] && . /etc/sysconfig/sshd |
20 | ||
8efc0c15 | 21 | RETVAL=0 |
3ef3d901 | 22 | prog="sshd" |
8efc0c15 | 23 | |
71d43804 | 24 | # Some functions to make the below more readable |
25 | KEYGEN=/usr/bin/ssh-keygen | |
3ef3d901 | 26 | SSHD=/usr/sbin/sshd |
fa08c86b | 27 | RSA1_KEY=/etc/ssh/ssh_host_key |
28 | RSA_KEY=/etc/ssh/ssh_host_rsa_key | |
71d43804 | 29 | DSA_KEY=/etc/ssh/ssh_host_dsa_key |
30 | PID_FILE=/var/run/sshd.pid | |
3ef3d901 | 31 | |
fa08c86b | 32 | do_rsa1_keygen() { |
3ef3d901 | 33 | if [ ! -s $RSA1_KEY ]; then |
34 | echo -n $"Generating SSH1 RSA host key: " | |
fa08c86b | 35 | if $KEYGEN -q -t rsa1 -f $RSA1_KEY -C '' -N '' >&/dev/null; then |
3ef3d901 | 36 | chmod 600 $RSA1_KEY |
37 | chmod 644 $RSA1_KEY.pub | |
38 | success $"RSA1 key generation" | |
fa08c86b | 39 | echo |
40 | else | |
3ef3d901 | 41 | failure $"RSA1 key generation" |
fa08c86b | 42 | echo |
43 | exit 1 | |
44 | fi | |
45 | fi | |
46 | } | |
3ef3d901 | 47 | |
71d43804 | 48 | do_rsa_keygen() { |
3ef3d901 | 49 | if [ ! -s $RSA_KEY ]; then |
50 | echo -n $"Generating SSH2 RSA host key: " | |
fa08c86b | 51 | if $KEYGEN -q -t rsa -f $RSA_KEY -C '' -N '' >&/dev/null; then |
3ef3d901 | 52 | chmod 600 $RSA_KEY |
53 | chmod 644 $RSA_KEY.pub | |
54 | success $"RSA key generation" | |
71d43804 | 55 | echo |
56 | else | |
3ef3d901 | 57 | failure $"RSA key generation" |
71d43804 | 58 | echo |
59 | exit 1 | |
60 | fi | |
dd092f97 | 61 | fi |
71d43804 | 62 | } |
3ef3d901 | 63 | |
71d43804 | 64 | do_dsa_keygen() { |
3ef3d901 | 65 | if [ ! -s $DSA_KEY ]; then |
66 | echo -n $"Generating SSH2 DSA host key: " | |
fa08c86b | 67 | if $KEYGEN -q -t dsa -f $DSA_KEY -C '' -N '' >&/dev/null; then |
3ef3d901 | 68 | chmod 600 $DSA_KEY |
69 | chmod 644 $DSA_KEY.pub | |
70 | success $"DSA key generation" | |
71d43804 | 71 | echo |
72 | else | |
3ef3d901 | 73 | failure $"DSA key generation" |
71d43804 | 74 | echo |
75 | exit 1 | |
76 | fi | |
dd092f97 | 77 | fi |
71d43804 | 78 | } |
3ef3d901 | 79 | |
80 | do_restart_sanity_check() | |
81 | { | |
82 | $SSHD -t | |
94a29edc | 83 | RETVAL=$? |
84 | if [ ! "$RETVAL" = 0 ]; then | |
3ef3d901 | 85 | failure $"Configuration file or keys are invalid" |
94a29edc | 86 | echo |
94a29edc | 87 | fi |
88 | } | |
89 | ||
3ef3d901 | 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 | } | |
71d43804 | 120 | |
121 | case "$1" in | |
122 | start) | |
3ef3d901 | 123 | start |
71d43804 | 124 | ;; |
125 | stop) | |
3ef3d901 | 126 | stop |
71d43804 | 127 | ;; |
128 | restart) | |
3ef3d901 | 129 | stop |
130 | start | |
131 | ;; | |
132 | reload) | |
133 | reload | |
71d43804 | 134 | ;; |
30d8b039 | 135 | condrestart) |
136 | if [ -f /var/lock/subsys/sshd ] ; then | |
94a29edc | 137 | do_restart_sanity_check |
3ef3d901 | 138 | if [ "$RETVAL" = 0 ] ; then |
139 | stop | |
140 | # avoid race | |
141 | sleep 3 | |
142 | start | |
143 | fi | |
30d8b039 | 144 | fi |
145 | ;; | |
71d43804 | 146 | status) |
3ef3d901 | 147 | status $SSHD |
71d43804 | 148 | RETVAL=$? |
149 | ;; | |
150 | *) | |
3ef3d901 | 151 | echo $"Usage: $0 {start|stop|restart|reload|condrestart|status}" |
152 | RETVAL=1 | |
8efc0c15 | 153 | esac |
8efc0c15 | 154 | exit $RETVAL |