sshd revision 1.28
11.1Slukem#!/bin/sh
21.1Slukem#
31.28Sjmcneill# $NetBSD: sshd,v 1.28 2018/05/26 00:17:54 jmcneill 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.23Schristos(
211.23Schristos	keygen="/usr/bin/ssh-keygen"
221.11Slukem	umask 022
231.23Schristos	while read type bits filename version name;  do
241.23Schristos		f="/etc/ssh/$filename"
251.23Schristos		if [ -f "$f" ]; then
261.27Schristos			continue
271.23Schristos		fi
281.27Schristos		case "${bits}" in
291.27Schristos		-1)	bitarg=;;
301.27Schristos		0)	bitarg="${ssh_keygen_flags}";;
311.27Schristos		*)	bitarg="-b ${bits}";;
321.27Schristos		esac
331.28Sjmcneill		"${keygen}" -t "${type}" ${bitarg} -f "${f}" -N '' -q && \
341.28Sjmcneill		    printf "ssh-keygen: " && "${keygen}" -f "${f}" -l
351.23Schristos	done << _EOF
361.23Schristosdsa	1024	ssh_host_dsa_key	2	DSA
371.23Schristosecdsa	521	ssh_host_ecdsa_key	1	ECDSA
381.23Schristosed25519	-1	ssh_host_ed25519_key	1	ED25519
391.23Schristosrsa	0	ssh_host_rsa_key	2	RSA
401.26Schristosxmss	0	ssh_host_xmss_key	1	XMSS
411.23Schristos_EOF
421.23Schristos)
431.3Sjwise}
441.3Sjwise
451.6Slukemsshd_precmd()
461.6Slukem{
471.27Schristos	run_rc_command keygen
481.3Sjwise}
491.3Sjwise
501.3Sjwisekeygen_cmd=sshd_keygen
511.5Sjwisestart_precmd=sshd_precmd
521.3Sjwise
531.3Sjwiseload_rc_config $name
541.3Sjwiserun_rc_command "$1"
55