]> git.pld-linux.org Git - packages/openssh.git/blob - opensshd.init
- use start-stop-daemon to stop *only* listening sshd until somebody does it with...
[packages/openssh.git] / opensshd.init
1 #!/bin/sh
2 #
3 # sshd          sshd (secure shell daemon)
4 #
5 # chkconfig:    345 55 45
6 #
7 # description:  sshd (secure shell daemon) is a server part of the ssh suite. \
8 #               Ssh can be used for remote login, remote file copying, TCP port \
9 #               forwarding etc. Ssh offers strong encryption and authentication.
10
11
12 # Source function library
13 . /etc/rc.d/init.d/functions
14
15 # Get network config
16 . /etc/sysconfig/network
17
18 # Get service config
19 [ -f /etc/sysconfig/sshd ] && . /etc/sysconfig/sshd
20
21 # Check that networking is up.
22 if is_yes "${NETWORKING}"; then
23         if [ ! -f /var/lock/subsys/network -a "$1" != stop -a "$1" != status -a "$1" != init ]; then
24                 msg_network_down OpenSSH
25                 exit 1
26         fi
27 else
28         exit 0
29 fi
30
31 RETVAL=0
32 # See how we were called.
33 case "$1" in
34   start)
35         # generate new keys with empty passwords if they do not exist
36         if [ ! -f /etc/ssh/ssh_host_key -o ! -s /etc/ssh/ssh_host_key ]; then
37                 /usr/bin/ssh-keygen -t rsa1 -f /etc/ssh/ssh_host_key -N '' 1>&2
38                 chmod 600 /etc/ssh/ssh_host_key
39                 [ -x /sbin/restorecon ] && /sbin/restorecon /etc/ssh/ssh_host_key || :
40         fi
41         if [ ! -f /etc/ssh/ssh_host_rsa_key -o ! -s /etc/ssh/ssh_host_rsa_key ]; then
42                 /usr/bin/ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N '' 1>&2
43                 chmod 600 /etc/ssh/ssh_host_rsa_key
44                 [ -x /sbin/restorecon ] && /sbin/restorecon /etc/ssh/ssh_host_rsa_key || :
45         fi
46         if [ ! -f /etc/ssh/ssh_host_dsa_key -o ! -s /etc/ssh/ssh_host_dsa_key ]; then
47                 /usr/bin/ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key -N '' 1>&2
48                 chmod 600 /etc/ssh/ssh_host_dsa_key
49                 [ -x /sbin/restorecon ] && /sbin/restorecon /etc/ssh/ssh_host_dsa_key || :
50         fi
51
52         if [ ! -f /etc/ssh/ssh_host_key ]; then
53                 msg_not_running OpenSSH
54                 nls "No SSH host key found! You must run \"%s init\" first." "$0"
55                 exit 1
56         fi
57
58         # Check if the service is already running?
59         if [ ! -f /var/lock/subsys/sshd ]; then
60                 msg_starting OpenSSH
61                 daemon /usr/sbin/sshd
62                 RETVAL=$?
63                 [ $RETVAL -eq 0 ] && touch /var/lock/subsys/sshd
64         else
65                 msg_already_running OpenSSH
66         fi
67         ;;
68   stop)
69         if [ -f /var/lock/subsys/sshd ]; then
70                 msg_stopping OpenSSH
71                 # we use start-stop-daemon to stop sshd, as it is unacceptable for such
72                 # critical service as sshd to kill it by procname, but unfortunately
73                 # rc-scripts does not provide way to kill *only* by pidfile
74                 start-stop-daemon --stop --quiet --pidfile /var/run/sshd.pid && ok || fail
75                 rm -f /var/lock/subsys/sshd >/dev/null 2>&1
76         else
77                 msg_not_running OpenSSH
78         fi
79         ;;
80   restart)
81         $0 stop
82         $0 start
83         exit $?
84         ;;
85   status)
86         status sshd
87         exit $?
88         ;;
89   init)
90         nls "Now the SSH host key will be generated. Please note, that if you"
91         nls "will use password for the key, you will need to type it on each"
92         nls "reboot."
93         /usr/bin/ssh-keygen -t rsa1 -f /etc/ssh/ssh_host_key
94         [ -x /sbin/restorecon ] && /sbin/restorecon /etc/ssh/ssh_host_key || :
95         chmod 600 /etc/ssh/ssh_host_key
96         /usr/bin/ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
97         [ -x /sbin/restorecon ] && /sbin/restorecon /etc/ssh/ssh_host_rsa_key || :
98         chmod 600 /etc/ssh/ssh_host_rsa_key
99         /usr/bin/ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key
100         chmod 600 /etc/ssh/ssh_host_dsa_key
101         [ -x /sbin/restorecon ] && /sbin/restorecon /etc/ssh/ssh_host_dsa_key || :
102         exit $?
103         ;;
104   reload|force-reload)
105         if [ -f /var/lock/subsys/sshd ]; then
106                 msg_reloading OpenSSH
107                 killproc sshd -HUP
108                 RETVAL=$?
109         else
110                 msg_not_running OpenSSH >&2
111                 exit 7
112         fi
113         ;;
114   *)
115         msg_usage "$0 {start|stop|init|restart|reload|force-reload|status}"
116         exit 3
117 esac
118
119 exit $RETVAL
This page took 0.077675 seconds and 4 git commands to generate.