ssh-com-client.sh revision 124208
1124208Sdes# $OpenBSD: ssh-com-client.sh,v 1.5 2003/05/14 22:08:27 markus Exp $ 298937Sdes# Placed in the Public Domain. 398937Sdes 498937Sdestid="connect with ssh.com client" 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.1.0 1398937Sdes 2.2.0 1498937Sdes 2.3.0 1598937Sdes 2.3.1 1698937Sdes 2.4.0 1798937Sdes 3.0.0 18113908Sdes 3.1.0 19113908Sdes 3.2.0 20124208Sdes 3.2.2 21124208Sdes 3.2.3 22113908Sdes 3.3.0" 2398937Sdes 2498937Sdes# 2.0.10 2.0.12 2.0.13 don't like the test setup 2598937Sdes 2698937Sdes# setup authorized keys 2798937SdesSRC=`dirname ${SCRIPT}` 2898937Sdescp ${SRC}/dsa_ssh2.prv ${OBJ}/id.com 2998937Sdeschmod 600 ${OBJ}/id.com 3098937Sdes${SSHKEYGEN} -i -f ${OBJ}/id.com > $OBJ/id.openssh 3198937Sdeschmod 600 ${OBJ}/id.openssh 3298937Sdes${SSHKEYGEN} -y -f ${OBJ}/id.openssh > $OBJ/authorized_keys_$USER 3398937Sdes${SSHKEYGEN} -e -f ${OBJ}/id.openssh > $OBJ/id.com.pub 3498937Sdesecho IdKey ${OBJ}/id.com > ${OBJ}/id.list 3598937Sdes 3698937Sdes# we need a DSA host key 3798937Sdest=dsa 3898937Sdesrm -f ${OBJ}/$t ${OBJ}/$t.pub 3998937Sdes${SSHKEYGEN} -q -N '' -t $t -f ${OBJ}/$t 4098937Sdes$SUDO cp $OBJ/$t $OBJ/host.$t 4198937Sdesecho HostKey $OBJ/host.$t >> $OBJ/sshd_config 4298937Sdes 4398937Sdes# add hostkeys to known hosts 4498937Sdesmkdir -p ${OBJ}/${USER}/hostkeys 4598937SdesHK=${OBJ}/${USER}/hostkeys/key_${PORT}_127.0.0.1 4698937Sdes${SSHKEYGEN} -e -f ${OBJ}/rsa.pub > ${HK}.ssh-rsa.pub 4798937Sdes${SSHKEYGEN} -e -f ${OBJ}/dsa.pub > ${HK}.ssh-dss.pub 4898937Sdes 4998937Sdescat > ${OBJ}/ssh2_config << EOF 5098937Sdes*: 5198937Sdes QuietMode yes 5298937Sdes StrictHostKeyChecking yes 5398937Sdes Port ${PORT} 5498937Sdes User ${USER} 5598937Sdes Host 127.0.0.1 5698937Sdes IdentityFile ${OBJ}/id.list 5798937Sdes RandomSeedFile ${OBJ}/random_seed 5898937Sdes UserConfigDirectory ${OBJ}/%U 5998937Sdes AuthenticationSuccessMsg no 6098937Sdes BatchMode yes 6198937Sdes ForwardX11 no 6298937SdesEOF 6398937Sdes 6498937Sdes# we need a real server (no ProxyConnect option) 6598937Sdesstart_sshd 6698937Sdes 67124208SdesDATA=/bin/ls${EXEEXT} 6898937SdesCOPY=${OBJ}/copy 6998937Sdesrm -f ${COPY} 7098937Sdes 7198937Sdes# go for it 7298937Sdesfor v in ${VERSIONS}; do 7398937Sdes ssh2=${TEST_COMBASE}/${v}/ssh2 7498937Sdes if [ ! -x ${ssh2} ]; then 7598937Sdes continue 7698937Sdes fi 7798937Sdes verbose "ssh2 ${v}" 7898937Sdes key=ssh-dss 7998937Sdes skipcat=0 8098937Sdes case $v in 8198937Sdes 2.1.*|2.3.0) 8298937Sdes skipcat=1 8398937Sdes ;; 8498937Sdes 3.0.*) 8598937Sdes key=ssh-rsa 8698937Sdes ;; 8798937Sdes esac 8898937Sdes cp ${HK}.$key.pub ${HK}.pub 8998937Sdes 9098937Sdes # check exit status 9198937Sdes ${ssh2} -q -F ${OBJ}/ssh2_config somehost exit 42 9298937Sdes r=$? 9398937Sdes if [ $r -ne 42 ]; then 9498937Sdes fail "ssh2 ${v} exit code test failed (got $r, expected 42)" 9598937Sdes fi 9698937Sdes 9798937Sdes # data transfer 9898937Sdes rm -f ${COPY} 9998937Sdes ${ssh2} -F ${OBJ}/ssh2_config somehost cat ${DATA} > ${COPY} 10098937Sdes if [ $? -ne 0 ]; then 10198937Sdes fail "ssh2 ${v} cat test (receive) failed" 10298937Sdes fi 10398937Sdes cmp ${DATA} ${COPY} || fail "ssh2 ${v} cat test (receive) data mismatch" 10498937Sdes 10598937Sdes # data transfer, again 10698937Sdes if [ $skipcat -eq 0 ]; then 10798937Sdes rm -f ${COPY} 10898937Sdes cat ${DATA} | \ 10998937Sdes ${ssh2} -F ${OBJ}/ssh2_config host "cat > ${COPY}" 11098937Sdes if [ $? -ne 0 ]; then 11198937Sdes fail "ssh2 ${v} cat test (send) failed" 11298937Sdes fi 11398937Sdes cmp ${DATA} ${COPY} || \ 11498937Sdes fail "ssh2 ${v} cat test (send) data mismatch" 11598937Sdes fi 11698937Sdes 11798937Sdes # no stderr after eof 11898937Sdes rm -f ${COPY} 11998937Sdes ${ssh2} -F ${OBJ}/ssh2_config somehost \ 12098937Sdes exec sh -c \'"exec > /dev/null; sleep 1; echo bla 1>&2; exit 0"\' \ 12198937Sdes 2> /dev/null 12298937Sdes if [ $? -ne 0 ]; then 12398937Sdes fail "ssh2 ${v} stderr test failed" 12498937Sdes fi 12598937Sdesdone 12698937Sdes 12798937Sdesrm -rf ${OBJ}/${USER} 12898937Sdesfor i in ssh2_config random_seed dsa.pub dsa host.dsa \ 12998937Sdes id.list id.com id.com.pub id.openssh; do 13098937Sdes rm -f ${OBJ}/$i 13198937Sdesdone 132