#!/sbin/runscript # Copyright 1999-2006 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: /var/cvsroot/gentoo-x86/net-misc/openssh/files/sshd.rc6,v 1.27 2009/08/12 08:09:52 idl0r Exp $ opts="${opts} reload checkconfig gen_keys" depend() { use logger dns need net } SSHD_CONFDIR=${SSHD_CONFDIR:-/etc/ssh} SSHD_PIDFILE=${SSHD_PIDFILE:-/var/run/${SVCNAME}.pid} SSHD_BINARY=${SSHD_BINARY:-/usr/sbin/sshd} checkconfig() { if [ ! -d /var/empty ] ; then mkdir -p /var/empty || return 1 fi if [ ! -e "${SSHD_CONFDIR}"/sshd_config ] ; then eerror "You need an ${SSHD_CONFDIR}/sshd_config file to run sshd" eerror "There is a sample file in /usr/share/doc/openssh" return 1 fi gen_keys || return 1 "${SSHD_BINARY}" -t ${myopts} || return 1 } gen_keys() { if [ ! -e "${SSHD_CONFDIR}"/ssh_host_key ] ; then einfo "Generating Hostkey..." /usr/bin/ssh-keygen -t rsa1 -f "${SSHD_CONFDIR}"/ssh_host_key -N '' || return 1 fi if [ ! -e "${SSHD_CONFDIR}"/ssh_host_dsa_key ] ; then einfo "Generating DSA-Hostkey..." /usr/bin/ssh-keygen -d -f "${SSHD_CONFDIR}"/ssh_host_dsa_key -N '' || return 1 fi if [ ! -e "${SSHD_CONFDIR}"/ssh_host_rsa_key ] ; then einfo "Generating RSA-Hostkey..." /usr/bin/ssh-keygen -t rsa -f "${SSHD_CONFDIR}"/ssh_host_rsa_key -N '' || return 1 fi return 0 } start() { local myopts="" [ "${SSHD_PIDFILE}" != "/var/run/sshd.pid" ] \ && myopts="${myopts} -o PidFile=${SSHD_PIDFILE}" [ "${SSHD_CONFDIR}" != "/etc/ssh" ] \ && myopts="${myopts} -f ${SSHD_CONFDIR}/sshd_config" checkconfig || return 1 ebegin "Starting ${SVCNAME}" start-stop-daemon --start --exec "${SSHD_BINARY}" \ --pidfile "${SSHD_PIDFILE}" \ -- ${myopts} ${SSHD_OPTS} eend $? } stop() { if [ "${RC_CMD}" = "restart" ] ; then checkconfig || return 1 fi ebegin "Stopping ${SVCNAME}" start-stop-daemon --stop --exec "${SSHD_BINARY}" \ --pidfile "${SSHD_PIDFILE}" --quiet eend $? } reload() { checkconfig || return 1 ebegin "Reloading ${SVCNAME}" start-stop-daemon --stop --signal HUP --oknodo \ --exec "${SSHD_BINARY}" --pidfile "${SSHD_PIDFILE}" eend $? }