]> git.pld-linux.org Git - packages/openssh.git/blame - opensshd.init
- rel 6
[packages/openssh.git] / opensshd.init
CommitLineData
cf3b46d6
AF
1#!/bin/sh
2#
3# sshd sshd (secure shell daemon)
4#
bd059713 5# chkconfig: 345 11 89
cf3b46d6 6#
4a9f24b4 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 \
cf3b46d6
AF
9# forwarding etc. Ssh offers strong encryption and authentication.
10
32322335 11SSHD_OOM_ADJUST=-17
cf3b46d6
AF
12
13# Source function library
14. /etc/rc.d/init.d/functions
15
16# Get network config
17. /etc/sysconfig/network
18
19# Get service config
20[ -f /etc/sysconfig/sshd ] && . /etc/sysconfig/sshd
21
22# Check that networking is up.
7d58fbb0 23if is_yes "${NETWORKING}"; then
224aaee1 24 if [ ! -f /var/lock/subsys/network -a "$1" != stop -a "$1" != status -a "$1" != init ]; then
e6635719 25 msg_network_down "OpenSSH"
7d58fbb0 26 exit 1
27 fi
28else
29 exit 0
cf3b46d6 30fi
a1c37c17 31
32322335 32adjust_oom() {
141073f0
ER
33 if [ -e /var/run/sshd.pid ]; then
34 for pid in $(cat /var/run/sshd.pid); do
35 echo "$SSHD_OOM_ADJUST" 2>/dev/null > /proc/$pid/oom_adj
36 done
37 fi
32322335
AM
38}
39
945a8076
ER
40checkconfig() {
41 /usr/sbin/sshd -t || exit 1
42}
43
e6635719 44ssh_gen_keys() {
3c573fc0 45 # generate new keys with empty passwords if they do not exist
46 if [ ! -f /etc/ssh/ssh_host_key -o ! -s /etc/ssh/ssh_host_key ]; then
e6635719 47 /usr/bin/ssh-keygen -t rsa1 -f /etc/ssh/ssh_host_key -N '' >&2
7d58fbb0 48 chmod 600 /etc/ssh/ssh_host_key
e6635719 49 [ -x /sbin/restorecon ] && /sbin/restorecon /etc/ssh/ssh_host_key
3c573fc0 50 fi
51 if [ ! -f /etc/ssh/ssh_host_rsa_key -o ! -s /etc/ssh/ssh_host_rsa_key ]; then
e6635719 52 /usr/bin/ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N '' >&2
7d58fbb0 53 chmod 600 /etc/ssh/ssh_host_rsa_key
e6635719 54 [ -x /sbin/restorecon ] && /sbin/restorecon /etc/ssh/ssh_host_rsa_key
3c573fc0 55 fi
56 if [ ! -f /etc/ssh/ssh_host_dsa_key -o ! -s /etc/ssh/ssh_host_dsa_key ]; then
e6635719 57 /usr/bin/ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key -N '' >&2
7d58fbb0 58 chmod 600 /etc/ssh/ssh_host_dsa_key
e6635719
ER
59 [ -x /sbin/restorecon ] && /sbin/restorecon /etc/ssh/ssh_host_dsa_key
60 fi
e6635719
ER
61}
62
63start() {
64 # Check if the service is already running?
65 if [ -f /var/lock/subsys/sshd ]; then
66 msg_already_running "OpenSSH"
67 return
3c573fc0 68 fi
69
e6635719
ER
70 ssh_gen_keys
71
945a8076
ER
72 checkconfig
73
e6635719
ER
74 if [ ! -s /etc/ssh/ssh_host_key ]; then
75 msg_not_running "OpenSSH"
7d58fbb0 76 nls "No SSH host key found! You must run \"%s init\" first." "$0"
01d1f289 77 exit 1
78 fi
3c573fc0 79
1292c55e
ER
80 if is_yes "$IPV4_NETWORKING" && is_no "$IPV6_NETWORKING"; then
81 OPTIONS="$OPTIONS -4"
82 fi
83 if is_yes "$IPV6_NETWORKING" && is_no "$IPV4_NETWORKING"; then
84 OPTIONS="$OPTIONS -6"
85 fi
86
e6635719 87 msg_starting "OpenSSH"
1292c55e 88 daemon --pidfile /var/run/sshd.pid /usr/sbin/sshd $OPTIONS
e6635719
ER
89 RETVAL=$?
90 adjust_oom
91 [ $RETVAL -eq 0 ] && touch /var/lock/subsys/sshd
b10eed65
ER
92}
93
94stop() {
7d58fbb0 95 if [ -f /var/lock/subsys/sshd ]; then
e6635719 96 msg_stopping "OpenSSH"
3007cef9
ER
97 # we use start-stop-daemon to stop sshd, as it is unacceptable for such
98 # critical service as sshd to kill it by procname, but unfortunately
99 # rc-scripts does not provide way to kill *only* by pidfile
100 start-stop-daemon --stop --quiet --pidfile /var/run/sshd.pid && ok || fail
101 rm -f /var/lock/subsys/sshd >/dev/null 2>&1
cbd44157 102 else
e6635719 103 msg_not_running "OpenSSH"
a1c37c17 104 fi
b10eed65
ER
105}
106
c0f446a0
JK
107upstart_controlled --except init configtest
108
b10eed65
ER
109RETVAL=0
110# See how we were called.
111case "$1" in
112 start)
113 start
114 ;;
115 stop)
116 stop
cf3b46d6 117 ;;
cbd44157 118 restart)
945a8076 119 checkconfig
b10eed65
ER
120 stop
121 start
cf3b46d6
AF
122 ;;
123 status)
124 status sshd
cbd44157 125 exit $?
cf3b46d6 126 ;;
01d1f289 127 init)
0d883194 128 nls "Now the SSH host key will be generated. Please note, that if you"
129 nls "will use password for the key, you will need to type it on each"
130 nls "reboot."
e6635719 131 ssh_gen_keys
36f63877 132 ;;
c0f446a0
JK
133 configtest)
134 checkconfig
135 ;;
bff0c7f8 136 reload|force-reload)
0d883194 137 if [ -f /var/lock/subsys/sshd ]; then
d1017959 138 checkconfig
e6635719 139 msg_reloading "OpenSSH"
0d883194 140 killproc sshd -HUP
141 RETVAL=$?
0d883194 142 else
e6635719 143 msg_not_running "OpenSSH"
bff0c7f8 144 exit 7
0d883194 145 fi
36f63877 146 ;;
cf3b46d6 147 *)
bff0c7f8 148 msg_usage "$0 {start|stop|init|restart|reload|force-reload|status}"
149 exit 3
cf3b46d6
AF
150esac
151
cbd44157 152exit $RETVAL
This page took 0.11199 seconds and 4 git commands to generate.