sshd revision 98184
178344Sobrien#!/bin/sh 278344Sobrien# 398184Sgordon# $NetBSD: sshd,v 1.18 2002/04/29 08:23:34 lukem Exp $ 498184Sgordon# $FreeBSD: head/etc/rc.d/sshd 98184 2002-06-13 22:14:37Z gordon $ 578344Sobrien# 678344Sobrien 778344Sobrien# PROVIDE: sshd 878344Sobrien# REQUIRE: LOGIN 998184Sgordon# KEYWORD: FreeBSD NetBSD 1078344Sobrien 1178344Sobrien. /etc/rc.subr 1278344Sobrien 1378344Sobrienname="sshd" 1498184Sgordonrcvar=`set_rcvar` 1578344Sobriencommand="/usr/sbin/${name}" 1698184Sgordonkeygen_cmd="sshd_keygen" 1798184Sgordonstart_precmd="sshd_precmd" 1878344Sobrienpidfile="/var/run/${name}.pid" 1998184Sgordonrequired_files="/etc/ssh/sshd_config" 2078344Sobrienextra_commands="keygen reload" 2178344Sobrien 2278344Sobriensshd_keygen() 2378344Sobrien{ 2498184Sgordon ( 2598184Sgordon umask 022 2698184Sgordon 2798184Sgordon # Can't do anything if ssh is not installed 2898184Sgordon [ -x /usr/bin/ssh-keygen ] || { 2998184Sgordon warn "/usr/bin/ssh-keygen does not exist." 3098184Sgordon return 1 3198184Sgordon } 3298184Sgordon 3398184Sgordon if [ -f /etc/ssh/ssh_host_key ]; then 3498184Sgordon echo "You already have an RSA host key" \ 3598184Sgordon "in /etc/ssh/ssh_host_key" 3698184Sgordon echo "Skipping protocol version 1 RSA Key Generation" 3778344Sobrien else 3898184Sgordon /usr/bin/ssh-keygen -t rsa1 -b 1024 \ 3998184Sgordon -f /etc/ssh/ssh_host_key -N '' 4078344Sobrien fi 4178344Sobrien 4298184Sgordon if [ -f /etc/ssh/ssh_host_dsa_key ]; then 4398184Sgordon echo "You already have a DSA host key" \ 4498184Sgordon "in /etc/ssh/ssh_host_dsa_key" 4598184Sgordon echo "Skipping protocol version 2 DSA Key Generation" 4678344Sobrien else 4798184Sgordon /usr/bin/ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key -N '' 4878344Sobrien fi 4998184Sgordon 5098184Sgordon if [ -f /etc/ssh/ssh_host_rsa_key ]; then 5198184Sgordon echo "You already have a RSA host key" \ 5298184Sgordon "in /etc/ssh/ssh_host_rsa_key" 5398184Sgordon echo "Skipping protocol version 2 RSA Key Generation" 5498184Sgordon else 5598184Sgordon /usr/bin/ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N '' 5698184Sgordon fi 5798184Sgordon ) 5878344Sobrien} 5978344Sobrien 6078344Sobriensshd_precmd() 6178344Sobrien{ 6298184Sgordon if [ ! -f /etc/ssh/ssh_host_key -o \ 6398184Sgordon ! -f /etc/ssh/ssh_host_dsa_key -o \ 6498184Sgordon ! -f /etc/ssh/ssh_host_rsa_key ]; then 6598184Sgordon run_rc_command keygen 6678344Sobrien fi 6778344Sobrien} 6878344Sobrien 6978344Sobrienload_rc_config $name 7078344Sobrienrun_rc_command "$1" 71