ssh-com-client.sh revision 124208
1# $OpenBSD: ssh-com-client.sh,v 1.5 2003/05/14 22:08:27 markus Exp $ 2# Placed in the Public Domain. 3 4tid="connect with ssh.com client" 5 6#TEST_COMBASE=/path/to/ssh/com/binaries 7if [ "X${TEST_COMBASE}" = "X" ]; then 8 fatal '$TEST_COMBASE is not set' 9fi 10 11VERSIONS=" 12 2.1.0 13 2.2.0 14 2.3.0 15 2.3.1 16 2.4.0 17 3.0.0 18 3.1.0 19 3.2.0 20 3.2.2 21 3.2.3 22 3.3.0" 23 24# 2.0.10 2.0.12 2.0.13 don't like the test setup 25 26# setup authorized keys 27SRC=`dirname ${SCRIPT}` 28cp ${SRC}/dsa_ssh2.prv ${OBJ}/id.com 29chmod 600 ${OBJ}/id.com 30${SSHKEYGEN} -i -f ${OBJ}/id.com > $OBJ/id.openssh 31chmod 600 ${OBJ}/id.openssh 32${SSHKEYGEN} -y -f ${OBJ}/id.openssh > $OBJ/authorized_keys_$USER 33${SSHKEYGEN} -e -f ${OBJ}/id.openssh > $OBJ/id.com.pub 34echo IdKey ${OBJ}/id.com > ${OBJ}/id.list 35 36# we need a DSA host key 37t=dsa 38rm -f ${OBJ}/$t ${OBJ}/$t.pub 39${SSHKEYGEN} -q -N '' -t $t -f ${OBJ}/$t 40$SUDO cp $OBJ/$t $OBJ/host.$t 41echo HostKey $OBJ/host.$t >> $OBJ/sshd_config 42 43# add hostkeys to known hosts 44mkdir -p ${OBJ}/${USER}/hostkeys 45HK=${OBJ}/${USER}/hostkeys/key_${PORT}_127.0.0.1 46${SSHKEYGEN} -e -f ${OBJ}/rsa.pub > ${HK}.ssh-rsa.pub 47${SSHKEYGEN} -e -f ${OBJ}/dsa.pub > ${HK}.ssh-dss.pub 48 49cat > ${OBJ}/ssh2_config << EOF 50*: 51 QuietMode yes 52 StrictHostKeyChecking yes 53 Port ${PORT} 54 User ${USER} 55 Host 127.0.0.1 56 IdentityFile ${OBJ}/id.list 57 RandomSeedFile ${OBJ}/random_seed 58 UserConfigDirectory ${OBJ}/%U 59 AuthenticationSuccessMsg no 60 BatchMode yes 61 ForwardX11 no 62EOF 63 64# we need a real server (no ProxyConnect option) 65start_sshd 66 67DATA=/bin/ls${EXEEXT} 68COPY=${OBJ}/copy 69rm -f ${COPY} 70 71# go for it 72for v in ${VERSIONS}; do 73 ssh2=${TEST_COMBASE}/${v}/ssh2 74 if [ ! -x ${ssh2} ]; then 75 continue 76 fi 77 verbose "ssh2 ${v}" 78 key=ssh-dss 79 skipcat=0 80 case $v in 81 2.1.*|2.3.0) 82 skipcat=1 83 ;; 84 3.0.*) 85 key=ssh-rsa 86 ;; 87 esac 88 cp ${HK}.$key.pub ${HK}.pub 89 90 # check exit status 91 ${ssh2} -q -F ${OBJ}/ssh2_config somehost exit 42 92 r=$? 93 if [ $r -ne 42 ]; then 94 fail "ssh2 ${v} exit code test failed (got $r, expected 42)" 95 fi 96 97 # data transfer 98 rm -f ${COPY} 99 ${ssh2} -F ${OBJ}/ssh2_config somehost cat ${DATA} > ${COPY} 100 if [ $? -ne 0 ]; then 101 fail "ssh2 ${v} cat test (receive) failed" 102 fi 103 cmp ${DATA} ${COPY} || fail "ssh2 ${v} cat test (receive) data mismatch" 104 105 # data transfer, again 106 if [ $skipcat -eq 0 ]; then 107 rm -f ${COPY} 108 cat ${DATA} | \ 109 ${ssh2} -F ${OBJ}/ssh2_config host "cat > ${COPY}" 110 if [ $? -ne 0 ]; then 111 fail "ssh2 ${v} cat test (send) failed" 112 fi 113 cmp ${DATA} ${COPY} || \ 114 fail "ssh2 ${v} cat test (send) data mismatch" 115 fi 116 117 # no stderr after eof 118 rm -f ${COPY} 119 ${ssh2} -F ${OBJ}/ssh2_config somehost \ 120 exec sh -c \'"exec > /dev/null; sleep 1; echo bla 1>&2; exit 0"\' \ 121 2> /dev/null 122 if [ $? -ne 0 ]; then 123 fail "ssh2 ${v} stderr test failed" 124 fi 125done 126 127rm -rf ${OBJ}/${USER} 128for i in ssh2_config random_seed dsa.pub dsa host.dsa \ 129 id.list id.com id.com.pub id.openssh; do 130 rm -f ${OBJ}/$i 131done 132