Home | History | Annotate | Download | only in regress
      1 #	$OpenBSD: ssh-com.sh,v 1.7 2004/02/24 17:06:52 markus Exp $
      2 #	Placed in the Public Domain.
      3 
      4 tid="connect to ssh.com server"
      5 
      6 #TEST_COMBASE=/path/to/ssh/com/binaries
      7 if [ "X${TEST_COMBASE}" = "X" ]; then
      8 	fatal '$TEST_COMBASE is not set'
      9 fi
     10 
     11 VERSIONS="
     12 	2.0.12
     13 	2.0.13
     14 	2.1.0
     15 	2.2.0
     16 	2.3.0
     17 	2.4.0
     18 	3.0.0
     19 	3.1.0
     20 	3.2.0
     21 	3.2.2
     22 	3.2.3
     23 	3.2.5
     24 	3.2.9
     25 	3.2.9.1
     26 	3.3.0"
     27 # 2.0.10 does not support UserConfigDirectory
     28 # 2.3.1 requires a config in $HOME/.ssh2
     29 
     30 SRC=`dirname ${SCRIPT}`
     31 
     32 # ssh.com
     33 cat << EOF > $OBJ/sshd2_config
     34 #*:
     35 	# Port and ListenAddress are not used.
     36 	QuietMode			yes
     37 	Port				4343
     38 	ListenAddress			127.0.0.1
     39 	UserConfigDirectory		${OBJ}/%U
     40 	Ciphers				AnyCipher
     41 	PubKeyAuthentication		yes
     42 	#AllowedAuthentications		publickey
     43 	AuthorizationFile		authorization
     44 	HostKeyFile			${SRC}/dsa_ssh2.prv
     45 	PublicHostKeyFile		${SRC}/dsa_ssh2.pub
     46 	RandomSeedFile			${OBJ}/random_seed
     47 	MaxConnections			0 
     48 	PermitRootLogin			yes
     49 	VerboseMode			no
     50 	CheckMail			no
     51 	Ssh1Compatibility		no
     52 EOF
     53 
     54 # create client config 
     55 sed "s/HostKeyAlias.*/HostKeyAlias ssh2-localhost-with-alias/" \
     56 	< $OBJ/ssh_config > $OBJ/ssh_config_com
     57 
     58 # we need a DSA key for
     59 rm -f                             ${OBJ}/dsa ${OBJ}/dsa.pub
     60 ${SSHKEYGEN} -q -N '' -t dsa -f	  ${OBJ}/dsa
     61 
     62 # setup userdir, try rsa first
     63 mkdir -p ${OBJ}/${USER}
     64 cp /dev/null ${OBJ}/${USER}/authorization
     65 for t in rsa dsa; do
     66 	${SSHKEYGEN} -e -f ${OBJ}/$t.pub	>  ${OBJ}/${USER}/$t.com
     67 	echo Key $t.com			>> ${OBJ}/${USER}/authorization
     68 	echo IdentityFile ${OBJ}/$t	>> ${OBJ}/ssh_config_com
     69 done
     70 
     71 # convert and append DSA hostkey
     72 (
     73 	echon 'ssh2-localhost-with-alias,127.0.0.1,::1 '
     74 	${SSHKEYGEN} -if ${SRC}/dsa_ssh2.pub
     75 ) >> $OBJ/known_hosts
     76 
     77 # go for it
     78 for v in ${VERSIONS}; do
     79 	sshd2=${TEST_COMBASE}/${v}/sshd2
     80 	if [ ! -x ${sshd2} ]; then
     81 		continue
     82 	fi
     83 	trace "sshd2 ${v}"
     84 	PROXY="proxycommand ${sshd2} -qif ${OBJ}/sshd2_config 2> /dev/null"
     85 	${SSH} -qF ${OBJ}/ssh_config_com -o "${PROXY}" dummy exit 0
     86         if [ $? -ne 0 ]; then
     87                 fail "ssh connect to sshd2 ${v} failed"
     88         fi
     89 
     90 	ciphers="3des-cbc blowfish-cbc arcfour"
     91 	macs="hmac-md5"
     92 	case $v in
     93 	2.4.*)
     94 		ciphers="$ciphers cast128-cbc"
     95 		macs="$macs hmac-sha1 hmac-sha1-96 hmac-md5-96"
     96 		;;
     97 	3.*)
     98 		ciphers="$ciphers aes128-cbc cast128-cbc"
     99 		macs="$macs hmac-sha1 hmac-sha1-96 hmac-md5-96"
    100 		;;
    101 	esac
    102 	#ciphers="3des-cbc"
    103 	for m in $macs; do
    104 	for c in $ciphers; do
    105 		trace "sshd2 ${v} cipher $c mac $m"
    106 		verbose "test ${tid}: sshd2 ${v} cipher $c mac $m"
    107 		${SSH} -c $c -m $m -qF ${OBJ}/ssh_config_com -o "${PROXY}" dummy exit 0
    108 		if [ $? -ne 0 ]; then
    109 			fail "ssh connect to sshd2 ${v} with $c/$m failed"
    110 		fi
    111 	done
    112 	done
    113 done
    114 
    115 rm -rf ${OBJ}/${USER}
    116 for i in sshd_config_proxy ssh_config_proxy random_seed \
    117 	sshd2_config dsa.pub dsa ssh_config_com; do
    118 	rm -f ${OBJ}/$i
    119 done
    120