diff options
author | gordon <gordon@FreeBSD.org> | 2002-06-13 22:14:37 +0000 |
---|---|---|
committer | gordon <gordon@FreeBSD.org> | 2002-06-13 22:14:37 +0000 |
commit | 9c5433cb225f7a4e56e87623ea2e4011179553a5 (patch) | |
tree | 3168589e209abd888b033397e3c46dee6131a116 /etc/rc.d/sshd | |
parent | 50d99cdfecd92f5323a18aa791a5b1cb9d8b7191 (diff) | |
download | FreeBSD-src-9c5433cb225f7a4e56e87623ea2e4011179553a5.zip FreeBSD-src-9c5433cb225f7a4e56e87623ea2e4011179553a5.tar.gz |
Merge in all the changes that Mike Makonnen has been maintaining for a
while. This is only the script pieces, the glue for the build comes next.
Submitted by: Mike Makonnen <makonnen@pacbell.net>
Reviewed by: silence on -current and -hackers
Prodded by: rwatson
Diffstat (limited to 'etc/rc.d/sshd')
-rwxr-xr-x | etc/rc.d/sshd | 58 |
1 files changed, 40 insertions, 18 deletions
diff --git a/etc/rc.d/sshd b/etc/rc.d/sshd index e31a028..416ab7f 100755 --- a/etc/rc.d/sshd +++ b/etc/rc.d/sshd @@ -1,48 +1,70 @@ #!/bin/sh # -# $NetBSD: sshd,v 1.7 2000/08/10 22:49:43 lukem Exp $ +# $NetBSD: sshd,v 1.18 2002/04/29 08:23:34 lukem Exp $ +# $FreeBSD$ # # PROVIDE: sshd # REQUIRE: LOGIN +# KEYWORD: FreeBSD NetBSD . /etc/rc.subr name="sshd" -rcvar=$name +rcvar=`set_rcvar` command="/usr/sbin/${name}" +keygen_cmd="sshd_keygen" +start_precmd="sshd_precmd" pidfile="/var/run/${name}.pid" -required_files="/etc/${name}.conf" +required_files="/etc/ssh/sshd_config" extra_commands="keygen reload" sshd_keygen() { - if [ -f /etc/ssh_host_key ]; then - echo "You already have an RSA host key in /etc/ssh_host_key" - echo "Skipping RSA Key Generation" + ( + umask 022 + + # Can't do anything if ssh is not installed + [ -x /usr/bin/ssh-keygen ] || { + warn "/usr/bin/ssh-keygen does not exist." + return 1 + } + + if [ -f /etc/ssh/ssh_host_key ]; then + echo "You already have an RSA host key" \ + "in /etc/ssh/ssh_host_key" + echo "Skipping protocol version 1 RSA Key Generation" + else + /usr/bin/ssh-keygen -t rsa1 -b 1024 \ + -f /etc/ssh/ssh_host_key -N '' + fi + + if [ -f /etc/ssh/ssh_host_dsa_key ]; then + echo "You already have a DSA host key" \ + "in /etc/ssh/ssh_host_dsa_key" + echo "Skipping protocol version 2 DSA Key Generation" else - umask 022 - /usr/bin/ssh-keygen -b 1024 -f /etc/ssh_host_key -N '' + /usr/bin/ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key -N '' fi - if [ -f /etc/ssh_host_dsa_key ]; then - echo "You already have a DSA host key in /etc/ssh_host_dsa_key" - echo "Skipping DSA Key Generation" + if [ -f /etc/ssh/ssh_host_rsa_key ]; then + echo "You already have a RSA host key" \ + "in /etc/ssh/ssh_host_rsa_key" + echo "Skipping protocol version 2 RSA Key Generation" else - umask 022 - /usr/bin/ssh-keygen -d -f /etc/ssh_host_dsa_key -N '' + /usr/bin/ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N '' fi + ) } sshd_precmd() { - if [ ! -f /etc/ssh_host_key -o ! -f /etc/ssh_host_dsa_key ]; then - /etc/rc.d/sshd keygen + if [ ! -f /etc/ssh/ssh_host_key -o \ + ! -f /etc/ssh/ssh_host_dsa_key -o \ + ! -f /etc/ssh/ssh_host_rsa_key ]; then + run_rc_command keygen fi } -keygen_cmd=sshd_keygen -start_precmd=sshd_precmd - load_rc_config $name run_rc_command "$1" |