src/util/distro-import/91/sshd
changeset 387 397177e3bf8d
parent 378 cff3113e592c
equal deleted inserted replaced
386:5cd680466abe 387:397177e3bf8d
       
     1 #!/sbin/sh
       
     2 #
       
     3 # Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
       
     4 # Use is subject to license terms.
       
     5 #
       
     6 # ident	"@(#)sshd	1.4	04/11/17 SMI"
       
     7 
       
     8 SSHDIR=/etc/ssh
       
     9 KEYGEN="/usr/bin/ssh-keygen -q"
       
    10 PIDFILE=/var/run/sshd.pid
       
    11 
       
    12 # Checks to see if RSA, and DSA host keys are available
       
    13 # if any of these keys are not present, the respective keys are created.
       
    14 create_key()
       
    15 {
       
    16 	keypath=$1
       
    17 	keytype=$2
       
    18 
       
    19 	if [ ! -f $keypath ]; then
       
    20 		grep "^HostKey $keypath" $SSHDIR/sshd_config > /dev/null 2>&1
       
    21 		if [ $? -eq 0 ]; then
       
    22 			echo Creating new $keytype public/private host key pair
       
    23 			$KEYGEN -f $keypath -t $keytype -N ''
       
    24 			return $?
       
    25 		fi
       
    26 	fi
       
    27 
       
    28 	return 0
       
    29 }
       
    30 
       
    31 # This script is being used for two purposes: as part of an SMF
       
    32 # start/stop/refresh method, and as a sysidconfig(1M)/sys-unconfig(1M)
       
    33 # application.
       
    34 #
       
    35 # Both, the SMF methods and sysidconfig/sys-unconfig use different
       
    36 # arguments..
       
    37 
       
    38 case $1 in 
       
    39 	# sysidconfig/sys-unconfig arguments (-c and -u)
       
    40 '-c')
       
    41 	create_key $SSHDIR/ssh_host_rsa_key rsa
       
    42 	create_key $SSHDIR/ssh_host_dsa_key dsa
       
    43 	;;
       
    44 
       
    45 '-u')
       
    46 	# sys-unconfig(1M) knows how to remove ssh host keys, so there's
       
    47 	# nothing to do here.
       
    48 	:
       
    49 	;;
       
    50 
       
    51 	# SMF arguments (start and restart [really "refresh"])
       
    52 'start')
       
    53 	if [ -f /.livecd ] && [ ! -f $SSHDIR/ssh_host_rsa_key ]; then
       
    54 		create_key $SSHDIR/ssh_host_rsa_key rsa
       
    55 		create_key $SSHDIR/ssh_host_dsa_key dsa
       
    56 	fi
       
    57 	/usr/lib/ssh/sshd
       
    58 	;;
       
    59 
       
    60 'restart')
       
    61 	if [ -f "$PIDFILE" ]; then
       
    62 		/usr/bin/kill -HUP `/usr/bin/cat $PIDFILE`
       
    63 	fi
       
    64 	;;
       
    65 
       
    66 *)
       
    67 	echo "Usage: $0 { start | restart }"
       
    68 	exit 1
       
    69 	;;
       
    70 esac	
       
    71 
       
    72 exit $?