1295367Sdes# $OpenBSD: ssh-com.sh,v 1.9 2015/05/08 07:29:00 djm Exp $ 298937Sdes# Placed in the Public Domain. 398937Sdes 498937Sdestid="connect to ssh.com server" 598937Sdes 698937Sdes#TEST_COMBASE=/path/to/ssh/com/binaries 798937Sdesif [ "X${TEST_COMBASE}" = "X" ]; then 898937Sdes fatal '$TEST_COMBASE is not set' 998937Sdesfi 1098937Sdes 1198937SdesVERSIONS=" 1298937Sdes 2.0.12 1398937Sdes 2.0.13 1498937Sdes 2.1.0 1598937Sdes 2.2.0 1698937Sdes 2.3.0 1798937Sdes 2.4.0 1898937Sdes 3.0.0 19113908Sdes 3.1.0 20113908Sdes 3.2.0 21124208Sdes 3.2.2 22124208Sdes 3.2.3 23128456Sdes 3.2.5 24128456Sdes 3.2.9 25128456Sdes 3.2.9.1 26113908Sdes 3.3.0" 2798937Sdes# 2.0.10 does not support UserConfigDirectory 28113908Sdes# 2.3.1 requires a config in $HOME/.ssh2 2998937Sdes 3098937SdesSRC=`dirname ${SCRIPT}` 3198937Sdes 3298937Sdes# ssh.com 3398937Sdescat << EOF > $OBJ/sshd2_config 34113908Sdes#*: 35126274Sdes # Port and ListenAddress are not used. 3698937Sdes QuietMode yes 3798937Sdes Port 4343 3898937Sdes ListenAddress 127.0.0.1 3998937Sdes UserConfigDirectory ${OBJ}/%U 4098937Sdes Ciphers AnyCipher 4198937Sdes PubKeyAuthentication yes 4298937Sdes #AllowedAuthentications publickey 4398937Sdes AuthorizationFile authorization 4498937Sdes HostKeyFile ${SRC}/dsa_ssh2.prv 4598937Sdes PublicHostKeyFile ${SRC}/dsa_ssh2.pub 4698937Sdes RandomSeedFile ${OBJ}/random_seed 47295367Sdes MaxConnections 0 4898937Sdes PermitRootLogin yes 4998937Sdes VerboseMode no 5098937Sdes CheckMail no 5198937Sdes Ssh1Compatibility no 5298937SdesEOF 5398937Sdes 54295367Sdes# create client config 5598937Sdessed "s/HostKeyAlias.*/HostKeyAlias ssh2-localhost-with-alias/" \ 5698937Sdes < $OBJ/ssh_config > $OBJ/ssh_config_com 5798937Sdes 5898937Sdes# we need a DSA key for 5998937Sdesrm -f ${OBJ}/dsa ${OBJ}/dsa.pub 6098937Sdes${SSHKEYGEN} -q -N '' -t dsa -f ${OBJ}/dsa 6198937Sdes 6298937Sdes# setup userdir, try rsa first 6398937Sdesmkdir -p ${OBJ}/${USER} 6498937Sdescp /dev/null ${OBJ}/${USER}/authorization 6598937Sdesfor t in rsa dsa; do 6698937Sdes ${SSHKEYGEN} -e -f ${OBJ}/$t.pub > ${OBJ}/${USER}/$t.com 6798937Sdes echo Key $t.com >> ${OBJ}/${USER}/authorization 6898937Sdes echo IdentityFile ${OBJ}/$t >> ${OBJ}/ssh_config_com 6998937Sdesdone 7098937Sdes 7198937Sdes# convert and append DSA hostkey 7298937Sdes( 73255670Sdes printf 'ssh2-localhost-with-alias,127.0.0.1,::1 ' 7498937Sdes ${SSHKEYGEN} -if ${SRC}/dsa_ssh2.pub 7598937Sdes) >> $OBJ/known_hosts 7698937Sdes 7798937Sdes# go for it 7898937Sdesfor v in ${VERSIONS}; do 7998937Sdes sshd2=${TEST_COMBASE}/${v}/sshd2 8098937Sdes if [ ! -x ${sshd2} ]; then 8198937Sdes continue 8298937Sdes fi 8398937Sdes trace "sshd2 ${v}" 8498937Sdes PROXY="proxycommand ${sshd2} -qif ${OBJ}/sshd2_config 2> /dev/null" 8598937Sdes ${SSH} -qF ${OBJ}/ssh_config_com -o "${PROXY}" dummy exit 0 8698937Sdes if [ $? -ne 0 ]; then 8798937Sdes fail "ssh connect to sshd2 ${v} failed" 8898937Sdes fi 8998937Sdes 9098937Sdes ciphers="3des-cbc blowfish-cbc arcfour" 9198937Sdes macs="hmac-md5" 9298937Sdes case $v in 9398937Sdes 2.4.*) 9498937Sdes ciphers="$ciphers cast128-cbc" 9598937Sdes macs="$macs hmac-sha1 hmac-sha1-96 hmac-md5-96" 9698937Sdes ;; 9798937Sdes 3.*) 9898937Sdes ciphers="$ciphers aes128-cbc cast128-cbc" 9998937Sdes macs="$macs hmac-sha1 hmac-sha1-96 hmac-md5-96" 10098937Sdes ;; 10198937Sdes esac 10298937Sdes #ciphers="3des-cbc" 10398937Sdes for m in $macs; do 10498937Sdes for c in $ciphers; do 10598937Sdes trace "sshd2 ${v} cipher $c mac $m" 10698937Sdes verbose "test ${tid}: sshd2 ${v} cipher $c mac $m" 10798937Sdes ${SSH} -c $c -m $m -qF ${OBJ}/ssh_config_com -o "${PROXY}" dummy exit 0 10898937Sdes if [ $? -ne 0 ]; then 10998937Sdes fail "ssh connect to sshd2 ${v} with $c/$m failed" 11098937Sdes fi 11198937Sdes done 11298937Sdes done 11398937Sdesdone 11498937Sdes 11598937Sdesrm -rf ${OBJ}/${USER} 11698937Sdesfor i in sshd_config_proxy ssh_config_proxy random_seed \ 11798937Sdes sshd2_config dsa.pub dsa ssh_config_com; do 11898937Sdes rm -f ${OBJ}/$i 11998937Sdesdone 120