7 # REQUIRE: LOGIN FILESYSTEMS
13 desc="Secure Shell Daemon"
15 command="/usr/sbin/${name}"
16 keygen_cmd="sshd_keygen"
17 start_precmd="sshd_precmd"
18 reload_precmd="sshd_configtest"
19 restart_precmd="sshd_configtest"
20 configtest_cmd="sshd_configtest"
21 pidfile="/var/run/${name}.pid"
22 extra_commands="configtest keygen reload"
24 : ${sshd_rsa1_enable:="no"}
25 : ${sshd_rsa_enable:="yes"}
26 : ${sshd_dsa_enable:="no"}
27 : ${sshd_ecdsa_enable:="yes"}
28 : ${sshd_ed25519_enable:="yes"}
33 local ALG="$(echo $alg | tr a-z A-Z)"
36 if ! checkyesno "sshd_${alg}_enable" ; then
42 keyfile="/etc/ssh/ssh_host_key"
44 rsa|dsa|ecdsa|ed25519)
45 keyfile="/etc/ssh/ssh_host_${alg}_key"
52 if [ ! -x /usr/bin/ssh-keygen ] ; then
53 warn "/usr/bin/ssh-keygen does not exist."
57 if [ -f "${keyfile}" ] ; then
58 info "$ALG host key exists."
60 echo "Generating $ALG host key."
61 /usr/bin/ssh-keygen -q -t $alg -f "$keyfile" -N ""
62 /usr/bin/ssh-keygen -l -f "$keyfile.pub"
72 sshd_keygen_alg ed25519
77 echo "Performing sanity check on ${name} configuration."
78 eval ${command} ${sshd_flags} -t
84 run_rc_command configtest