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