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