]> andersk Git - openssh.git/blame - contrib/redhat/sshd.init
Use contrib/ Makefile for building askpass programs
[openssh.git] / contrib / redhat / sshd.init
CommitLineData
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 21RETVAL=0
3ef3d901 22prog="sshd"
8efc0c15 23
71d43804 24# Some functions to make the below more readable
25KEYGEN=/usr/bin/ssh-keygen
3ef3d901 26SSHD=/usr/sbin/sshd
fa08c86b 27RSA1_KEY=/etc/ssh/ssh_host_key
28RSA_KEY=/etc/ssh/ssh_host_rsa_key
71d43804 29DSA_KEY=/etc/ssh/ssh_host_dsa_key
30PID_FILE=/var/run/sshd.pid
3ef3d901 31
fa08c86b 32do_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 48do_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 64do_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
80do_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 90start()
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
104stop()
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
113reload()
114{
115 echo -n $"Reloading $prog:"
116 killproc $SSHD -HUP
117 RETVAL=$?
118 echo
119}
71d43804 120
121case "$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 153esac
8efc0c15 154exit $RETVAL
This page took 0.167464 seconds and 5 git commands to generate.