]>
Commit | Line | Data |
---|---|---|
836d58d7 | 1 | # $OpenBSD: ssh-com.sh,v 1.3 2002/03/15 13:08:56 markus Exp $ |
2 | # Placed in the Public Domain. | |
3 | ||
4 | tid="connect to ssh.com server" | |
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.0.12 | |
13 | 2.0.13 | |
14 | 2.1.0 | |
15 | 2.2.0 | |
16 | 2.3.0 | |
17 | 2.3.1 | |
18 | 2.4.0 | |
19 | 3.0.0 | |
20 | 3.1.0" | |
21 | # 2.0.10 does not support UserConfigDirectory | |
22 | ||
23 | SRC=`dirname ${SCRIPT}` | |
24 | ||
25 | # ssh.com | |
26 | cat << EOF > $OBJ/sshd2_config | |
27 | *: | |
28 | # Port and ListenAdress are not used. | |
29 | QuietMode yes | |
30 | Port 4343 | |
31 | ListenAddress 127.0.0.1 | |
32 | UserConfigDirectory ${OBJ}/%U | |
33 | Ciphers AnyCipher | |
34 | PubKeyAuthentication yes | |
35 | #AllowedAuthentications publickey | |
36 | AuthorizationFile authorization | |
37 | HostKeyFile ${SRC}/dsa_ssh2.prv | |
38 | PublicHostKeyFile ${SRC}/dsa_ssh2.pub | |
39 | RandomSeedFile ${OBJ}/random_seed | |
40 | MaxConnections 0 | |
41 | PermitRootLogin yes | |
42 | VerboseMode no | |
43 | CheckMail no | |
44 | Ssh1Compatibility no | |
45 | EOF | |
46 | ||
47 | # create client config | |
48 | sed "s/HostKeyAlias.*/HostKeyAlias ssh2-localhost-with-alias/" \ | |
49 | < $OBJ/ssh_config > $OBJ/ssh_config_com | |
50 | ||
51 | # we need a DSA key for | |
52 | rm -f ${OBJ}/dsa ${OBJ}/dsa.pub | |
53 | ${SSHKEYGEN} -q -N '' -t dsa -f ${OBJ}/dsa | |
54 | ||
55 | # setup userdir, try rsa first | |
56 | mkdir -p ${OBJ}/${USER} | |
57 | cp /dev/null ${OBJ}/${USER}/authorization | |
58 | for t in rsa dsa; do | |
59 | ${SSHKEYGEN} -e -f ${OBJ}/$t.pub > ${OBJ}/${USER}/$t.com | |
60 | echo Key $t.com >> ${OBJ}/${USER}/authorization | |
61 | echo IdentityFile ${OBJ}/$t >> ${OBJ}/ssh_config_com | |
62 | done | |
63 | ||
64 | # convert and append DSA hostkey | |
65 | ( | |
66 | echo -n 'ssh2-localhost-with-alias,127.0.0.1,::1 ' | |
67 | ${SSHKEYGEN} -if ${SRC}/dsa_ssh2.pub | |
68 | ) >> $OBJ/known_hosts | |
69 | ||
70 | # go for it | |
71 | for v in ${VERSIONS}; do | |
72 | sshd2=${TEST_COMBASE}/${v}/sshd2 | |
73 | if [ ! -x ${sshd2} ]; then | |
74 | continue | |
75 | fi | |
76 | trace "sshd2 ${v}" | |
77 | PROXY="proxycommand ${sshd2} -qif ${OBJ}/sshd2_config 2> /dev/null" | |
78 | ${SSH} -qF ${OBJ}/ssh_config_com -o "${PROXY}" dummy exit 0 | |
79 | if [ $? -ne 0 ]; then | |
80 | fail "ssh connect to sshd2 ${v} failed" | |
81 | fi | |
82 | ||
83 | ciphers="3des-cbc blowfish-cbc arcfour" | |
84 | macs="hmac-md5" | |
85 | case $v in | |
86 | 2.4.*) | |
87 | ciphers="$ciphers cast128-cbc" | |
88 | macs="$macs hmac-sha1 hmac-sha1-96 hmac-md5-96" | |
89 | ;; | |
90 | 3.*) | |
91 | ciphers="$ciphers aes128-cbc cast128-cbc" | |
92 | macs="$macs hmac-sha1 hmac-sha1-96 hmac-md5-96" | |
93 | ;; | |
94 | esac | |
95 | #ciphers="3des-cbc" | |
96 | for m in $macs; do | |
97 | for c in $ciphers; do | |
98 | trace "sshd2 ${v} cipher $c mac $m" | |
99 | verbose "test ${tid}: sshd2 ${v} cipher $c mac $m" | |
100 | ${SSH} -c $c -m $m -qF ${OBJ}/ssh_config_com -o "${PROXY}" dummy exit 0 | |
101 | if [ $? -ne 0 ]; then | |
102 | fail "ssh connect to sshd2 ${v} with $c/$m failed" | |
103 | fi | |
104 | done | |
105 | done | |
106 | done | |
107 | ||
108 | rm -rf ${OBJ}/${USER} | |
109 | for i in sshd_config_proxy ssh_config_proxy random_seed \ | |
110 | sshd2_config dsa.pub dsa ssh_config_com; do | |
111 | rm -f ${OBJ}/$i | |
112 | done |