source: trunk/third/openssh/regress/ssh-com-client.sh @ 22570

Revision 22570, 3.1 KB checked in by ghudson, 18 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r22569, which included commits to RCS files with non-trunk default branches.
Line 
1#       $OpenBSD: ssh-com-client.sh,v 1.6 2004/02/24 17:06:52 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.2.5
23        3.2.9
24        3.2.9.1
25        3.3.0"
26
27# 2.0.10 2.0.12 2.0.13 don't like the test setup
28
29# setup authorized keys
30SRC=`dirname ${SCRIPT}`
31cp ${SRC}/dsa_ssh2.prv ${OBJ}/id.com
32chmod 600 ${OBJ}/id.com
33${SSHKEYGEN} -i -f ${OBJ}/id.com        > $OBJ/id.openssh
34chmod 600 ${OBJ}/id.openssh
35${SSHKEYGEN} -y -f ${OBJ}/id.openssh    > $OBJ/authorized_keys_$USER
36${SSHKEYGEN} -e -f ${OBJ}/id.openssh    > $OBJ/id.com.pub
37echo IdKey ${OBJ}/id.com > ${OBJ}/id.list
38
39# we need a DSA host key
40t=dsa
41rm -f                             ${OBJ}/$t ${OBJ}/$t.pub
42${SSHKEYGEN} -q -N '' -t $t -f    ${OBJ}/$t
43$SUDO cp $OBJ/$t $OBJ/host.$t
44echo HostKey $OBJ/host.$t >> $OBJ/sshd_config
45
46# add hostkeys to known hosts
47mkdir -p ${OBJ}/${USER}/hostkeys
48HK=${OBJ}/${USER}/hostkeys/key_${PORT}_127.0.0.1
49${SSHKEYGEN} -e -f ${OBJ}/rsa.pub > ${HK}.ssh-rsa.pub
50${SSHKEYGEN} -e -f ${OBJ}/dsa.pub > ${HK}.ssh-dss.pub
51
52cat > ${OBJ}/ssh2_config << EOF
53*:
54        QuietMode                       yes
55        StrictHostKeyChecking           yes
56        Port                            ${PORT}
57        User                            ${USER}
58        Host                            127.0.0.1
59        IdentityFile                    ${OBJ}/id.list
60        RandomSeedFile                  ${OBJ}/random_seed
61        UserConfigDirectory             ${OBJ}/%U
62        AuthenticationSuccessMsg        no
63        BatchMode                       yes
64        ForwardX11                      no
65EOF
66
67# we need a real server (no ProxyConnect option)
68start_sshd
69
70DATA=/bin/ls${EXEEXT}
71COPY=${OBJ}/copy
72rm -f ${COPY}
73
74# go for it
75for v in ${VERSIONS}; do
76        ssh2=${TEST_COMBASE}/${v}/ssh2
77        if [ ! -x ${ssh2} ]; then
78                continue
79        fi
80        verbose "ssh2 ${v}"
81        key=ssh-dss
82        skipcat=0
83        case $v in
84        2.1.*|2.3.0)
85                skipcat=1
86                ;;
87        3.0.*)
88                key=ssh-rsa
89                ;;
90        esac
91        cp ${HK}.$key.pub ${HK}.pub
92
93        # check exit status
94        ${ssh2} -q -F ${OBJ}/ssh2_config somehost exit 42
95        r=$?
96        if [ $r -ne 42 ]; then
97                fail "ssh2 ${v} exit code test failed (got $r, expected 42)"
98        fi
99
100        # data transfer
101        rm -f ${COPY}
102        ${ssh2} -F ${OBJ}/ssh2_config somehost cat ${DATA} > ${COPY}
103        if [ $? -ne 0 ]; then
104                fail "ssh2 ${v} cat test (receive) failed"
105        fi
106        cmp ${DATA} ${COPY}     || fail "ssh2 ${v} cat test (receive) data mismatch"
107
108        # data transfer, again
109        if [ $skipcat -eq 0 ]; then
110                rm -f ${COPY}
111                cat ${DATA} | \
112                        ${ssh2} -F ${OBJ}/ssh2_config host "cat > ${COPY}"
113                if [ $? -ne 0 ]; then
114                        fail "ssh2 ${v} cat test (send) failed"
115                fi
116                cmp ${DATA} ${COPY}     || \
117                        fail "ssh2 ${v} cat test (send) data mismatch"
118        fi
119
120        # no stderr after eof
121        rm -f ${COPY}
122        ${ssh2} -F ${OBJ}/ssh2_config somehost \
123                exec sh -c \'"exec > /dev/null; sleep 1; echo bla 1>&2; exit 0"\' \
124                2> /dev/null
125        if [ $? -ne 0 ]; then
126                fail "ssh2 ${v} stderr test failed"
127        fi
128done
129
130rm -rf ${OBJ}/${USER}
131for i in ssh2_config random_seed dsa.pub dsa host.dsa \
132    id.list id.com id.com.pub id.openssh; do
133        rm -f ${OBJ}/$i
134done
Note: See TracBrowser for help on using the repository browser.