sshd revision 1.21
11.1Slukem#!/bin/sh
21.1Slukem#
31.21Schristos# $NetBSD: sshd,v 1.21 2011/07/25 03:04:23 christos Exp $
41.5Sjwise#
51.1Slukem
61.6Slukem# PROVIDE: sshd
71.6Slukem# REQUIRE: LOGIN
81.1Slukem
91.20Smycroft$_rc_subr_loaded . /etc/rc.subr
101.1Slukem
111.1Slukemname="sshd"
121.8Slukemrcvar=$name
131.6Slukemcommand="/usr/sbin/${name}"
141.7Slukempidfile="/var/run/${name}.pid"
151.18Slukemrequired_files="/etc/ssh/sshd_config"
161.7Slukemextra_commands="keygen reload"
171.3Sjwise
181.6Slukemsshd_keygen()
191.6Slukem{
201.12Slukem	(
211.11Slukem	umask 022
221.17Slukem	if [ -f /etc/ssh/ssh_host_key ]; then
231.15Senami		echo "You already have an RSA host key" \
241.17Slukem		    "in /etc/ssh/ssh_host_key"
251.9Sitojun		echo "Skipping protocol version 1 RSA Key Generation"
261.3Sjwise	else
271.19Sjonb		/usr/bin/ssh-keygen -t rsa1 ${ssh_keygen_flags} \
281.17Slukem		    -f /etc/ssh/ssh_host_key -N ''
291.3Sjwise	fi
301.3Sjwise
311.17Slukem	if [ -f /etc/ssh/ssh_host_dsa_key ]; then
321.15Senami		echo "You already have a DSA host key" \
331.17Slukem		    "in /etc/ssh/ssh_host_dsa_key"
341.9Sitojun		echo "Skipping protocol version 2 DSA Key Generation"
351.3Sjwise	else
361.19Sjonb		/usr/bin/ssh-keygen -t dsa ${ssh_keygen_flags} \
371.19Sjonb		    -f /etc/ssh/ssh_host_dsa_key -N ''
381.9Sitojun	fi
391.9Sitojun
401.21Schristos	if [ -f /etc/ssh/ssh_host_ecdsa_key ]; then
411.21Schristos		echo "You already have a ECDSA host key" \
421.21Schristos		    "in /etc/ssh/ssh_host_ecdsa_key"
431.21Schristos		echo "Skipping protocol version 1 ECDSA Key Generation"
441.21Schristos	else
451.21Schristos		/usr/bin/ssh-keygen -t ecdsa -b 521 \
461.21Schristos		    -f /etc/ssh/ssh_host_ecdsa_key -N ''
471.21Schristos	fi
481.21Schristos
491.17Slukem	if [ -f /etc/ssh/ssh_host_rsa_key ]; then
501.15Senami		echo "You already have a RSA host key" \
511.17Slukem		    "in /etc/ssh/ssh_host_rsa_key"
521.9Sitojun		echo "Skipping protocol version 2 RSA Key Generation"
531.9Sitojun	else
541.19Sjonb		/usr/bin/ssh-keygen -t rsa ${ssh_keygen_flags} \
551.19Sjonb		    -f /etc/ssh/ssh_host_rsa_key -N ''
561.3Sjwise	fi
571.12Slukem	)
581.3Sjwise}
591.3Sjwise
601.6Slukemsshd_precmd()
611.6Slukem{
621.17Slukem	if [ ! -f /etc/ssh/ssh_host_key -o \
631.17Slukem	    ! -f /etc/ssh/ssh_host_dsa_key -o \
641.21Schristos	    ! -f /etc/ssh/ssh_host_ecdsa_key -o \
651.17Slukem	    ! -f /etc/ssh/ssh_host_rsa_key ]; then
661.16Senami		run_rc_command keygen
671.3Sjwise	fi
681.3Sjwise}
691.3Sjwise
701.3Sjwisekeygen_cmd=sshd_keygen
711.5Sjwisestart_precmd=sshd_precmd
721.3Sjwise
731.3Sjwiseload_rc_config $name
741.3Sjwiserun_rc_command "$1"
75