xref: /netbsd-src/etc/rc.d/sshd (revision b5c47949a45ac972130c38cf13dfd8afb1f09285)
1#!/bin/sh
2#
3# $NetBSD: sshd,v 1.30 2019/10/23 14:45:38 christos Exp $
4#
5
6# PROVIDE: sshd
7# REQUIRE: LOGIN
8
9$_rc_subr_loaded . /etc/rc.subr
10
11name="sshd"
12rcvar=$name
13command="/usr/sbin/${name}"
14pidfile="/var/run/${name}.pid"
15required_files="/etc/ssh/sshd_config"
16extra_commands="keygen reload"
17
18sshd_keygen()
19{
20(
21	keygen="/usr/bin/ssh-keygen"
22	umask 022
23	while read type bits filename;  do
24		f="/etc/ssh/$filename"
25		if [ -f "$f" ]; then
26			continue
27		fi
28		case "${bits}" in
29		-1)	bitarg=;;
30		0)	bitarg="${ssh_keygen_flags}";;
31		*)	bitarg="-b ${bits}";;
32		esac
33		"${keygen}" -t "${type}" ${bitarg} -f "${f}" -N '' -q && \
34		    printf "ssh-keygen: " && "${keygen}" -f "${f}" -l
35	done << _EOF
36dsa	1024	ssh_host_dsa_key
37ecdsa	521	ssh_host_ecdsa_key
38ed25519	-1	ssh_host_ed25519_key
39rsa	0	ssh_host_rsa_key
40_EOF
41)
42}
43
44sshd_precmd()
45{
46	run_rc_command keygen
47}
48
49keygen_cmd=sshd_keygen
50start_precmd=sshd_precmd
51
52load_rc_config $name
53run_rc_command "$1"
54