]> andersk Git - gssapi-openssh.git/blob - openssh/regress/ssh-com-client.sh
fc953228e893e5406ca873ae103284d7aeaf69c7
[gssapi-openssh.git] / openssh / regress / ssh-com-client.sh
1 #       $OpenBSD: ssh-com-client.sh,v 1.5 2003/05/14 22:08:27 markus Exp $
2 #       Placed in the Public Domain.
3
4 tid="connect with ssh.com client"
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.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
27 SRC=`dirname ${SCRIPT}`
28 cp ${SRC}/dsa_ssh2.prv ${OBJ}/id.com
29 chmod 600 ${OBJ}/id.com
30 ${SSHKEYGEN} -i -f ${OBJ}/id.com        > $OBJ/id.openssh
31 chmod 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
34 echo IdKey ${OBJ}/id.com > ${OBJ}/id.list
35
36 # we need a DSA host key
37 t=dsa
38 rm -f                             ${OBJ}/$t ${OBJ}/$t.pub
39 ${SSHKEYGEN} -q -N '' -t $t -f    ${OBJ}/$t
40 $SUDO cp $OBJ/$t $OBJ/host.$t
41 echo HostKey $OBJ/host.$t >> $OBJ/sshd_config
42
43 # add hostkeys to known hosts
44 mkdir -p ${OBJ}/${USER}/hostkeys
45 HK=${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
49 cat > ${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
62 EOF
63
64 # we need a real server (no ProxyConnect option)
65 start_sshd
66
67 DATA=/bin/ls${EXEEXT}
68 COPY=${OBJ}/copy
69 rm -f ${COPY}
70
71 # go for it
72 for 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
125 done
126
127 rm -rf ${OBJ}/${USER}
128 for 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
131 done
This page took 0.872566 seconds and 3 git commands to generate.