diff options
-rw-r--r-- | debian/.git-dpm | 4 | ||||
-rw-r--r-- | debian/changelog | 1 | ||||
-rw-r--r-- | debian/patches/fix-putty-interop-tests.patch | 113 | ||||
-rw-r--r-- | debian/patches/series | 1 | ||||
-rw-r--r-- | debian/tests/control | 2 | ||||
-rw-r--r-- | debian/tests/regress | 2 | ||||
-rw-r--r-- | regress/putty-ciphers.sh | 2 | ||||
-rw-r--r-- | regress/putty-kex.sh | 3 | ||||
-rw-r--r-- | regress/putty-transfer.sh | 4 | ||||
-rw-r--r-- | regress/test-exec.sh | 10 |
10 files changed, 132 insertions, 10 deletions
diff --git a/debian/.git-dpm b/debian/.git-dpm index 1f74d7567..a3594adbc 100644 --- a/debian/.git-dpm +++ b/debian/.git-dpm | |||
@@ -1,6 +1,6 @@ | |||
1 | # see git-dpm(1) from git-dpm package | 1 | # see git-dpm(1) from git-dpm package |
2 | b139635512b1af75e82252c0c71ac66e08b78774 | 2 | 9c88f6248e9da14cb7916527862f2eac7f55b12a |
3 | b139635512b1af75e82252c0c71ac66e08b78774 | 3 | 9c88f6248e9da14cb7916527862f2eac7f55b12a |
4 | a8ed8d256b2e2c05b0c15565a7938028c5192277 | 4 | a8ed8d256b2e2c05b0c15565a7938028c5192277 |
5 | a8ed8d256b2e2c05b0c15565a7938028c5192277 | 5 | a8ed8d256b2e2c05b0c15565a7938028c5192277 |
6 | openssh_7.3p1.orig.tar.gz | 6 | openssh_7.3p1.orig.tar.gz |
diff --git a/debian/changelog b/debian/changelog index 34e51a7c6..2ba15c11f 100644 --- a/debian/changelog +++ b/debian/changelog | |||
@@ -8,6 +8,7 @@ openssh (1:7.3p1-4) UNRELEASED; urgency=medium | |||
8 | dgit-compatible. | 8 | dgit-compatible. |
9 | * Build all upstream regression test binaries using the new | 9 | * Build all upstream regression test binaries using the new |
10 | "regress-binaries" target. | 10 | "regress-binaries" target. |
11 | * Fix and enable PuTTY interoperability tests under autopkgtest. | ||
11 | 12 | ||
12 | -- Colin Watson <cjwatson@debian.org> Fri, 11 Nov 2016 02:50:39 +0000 | 13 | -- Colin Watson <cjwatson@debian.org> Fri, 11 Nov 2016 02:50:39 +0000 |
13 | 14 | ||
diff --git a/debian/patches/fix-putty-interop-tests.patch b/debian/patches/fix-putty-interop-tests.patch new file mode 100644 index 000000000..c33c24acc --- /dev/null +++ b/debian/patches/fix-putty-interop-tests.patch | |||
@@ -0,0 +1,113 @@ | |||
1 | From 9c88f6248e9da14cb7916527862f2eac7f55b12a Mon Sep 17 00:00:00 2001 | ||
2 | From: Colin Watson <cjwatson@debian.org> | ||
3 | Date: Sat, 19 Nov 2016 16:02:49 +0000 | ||
4 | Subject: Fix PuTTY interop tests | ||
5 | |||
6 | A while back I got a patch into PuTTY (although it hasn't yet made it | ||
7 | into an upstream release) to add passphrase-file options to puttygen. | ||
8 | Use these to make the PuTTY interop tests non-interactive. | ||
9 | |||
10 | Fix up a few details of the saved session. | ||
11 | |||
12 | When plink is given a saved session name, it expects that *instead* of | ||
13 | the host name (or IP address), not in addition to it. Drop "127.0.0.1" | ||
14 | from the various plink test command lines. | ||
15 | |||
16 | (It is possible that the last two of these represent compatibility | ||
17 | breaks of some kind; but if they are, then that ship sailed sufficiently | ||
18 | long ago - at least seven years, possibly more - that it's no longer | ||
19 | worth worrying about it. It's more useful to test interoperability with | ||
20 | current versions.) | ||
21 | |||
22 | Origin: https://bugzilla.mindrot.org/attachment.cgi?id=2891 | ||
23 | Bug: https://bugzilla.mindrot.org/show_bug.cgi?id=2639 | ||
24 | Last-Update: 2016-11-19 | ||
25 | |||
26 | Patch-Name: fix-putty-interop-tests.patch | ||
27 | --- | ||
28 | regress/putty-ciphers.sh | 2 +- | ||
29 | regress/putty-kex.sh | 3 +-- | ||
30 | regress/putty-transfer.sh | 4 ++-- | ||
31 | regress/test-exec.sh | 10 ++++++++-- | ||
32 | 4 files changed, 12 insertions(+), 7 deletions(-) | ||
33 | |||
34 | diff --git a/regress/putty-ciphers.sh b/regress/putty-ciphers.sh | ||
35 | index 724a98c..3775b1d 100644 | ||
36 | --- a/regress/putty-ciphers.sh | ||
37 | +++ b/regress/putty-ciphers.sh | ||
38 | @@ -16,7 +16,7 @@ for c in aes blowfish 3des arcfour aes128-ctr aes192-ctr aes256-ctr ; do | ||
39 | |||
40 | rm -f ${COPY} | ||
41 | env HOME=$PWD ${PLINK} -load cipher_$c -batch -i putty.rsa2 \ | ||
42 | - 127.0.0.1 cat ${DATA} > ${COPY} | ||
43 | + cat ${DATA} > ${COPY} | ||
44 | if [ $? -ne 0 ]; then | ||
45 | fail "ssh cat $DATA failed" | ||
46 | fi | ||
47 | diff --git a/regress/putty-kex.sh b/regress/putty-kex.sh | ||
48 | index 1844d65..6ae2290 100644 | ||
49 | --- a/regress/putty-kex.sh | ||
50 | +++ b/regress/putty-kex.sh | ||
51 | @@ -14,8 +14,7 @@ for k in dh-gex-sha1 dh-group1-sha1 dh-group14-sha1 ; do | ||
52 | ${OBJ}/.putty/sessions/kex_$k | ||
53 | echo "KEX=$k" >> ${OBJ}/.putty/sessions/kex_$k | ||
54 | |||
55 | - env HOME=$PWD ${PLINK} -load kex_$k -batch -i putty.rsa2 \ | ||
56 | - 127.0.0.1 true | ||
57 | + env HOME=$PWD ${PLINK} -load kex_$k -batch -i putty.rsa2 true | ||
58 | if [ $? -ne 0 ]; then | ||
59 | fail "KEX $k failed" | ||
60 | fi | ||
61 | diff --git a/regress/putty-transfer.sh b/regress/putty-transfer.sh | ||
62 | index aec0e04..cb1da94 100644 | ||
63 | --- a/regress/putty-transfer.sh | ||
64 | +++ b/regress/putty-transfer.sh | ||
65 | @@ -17,7 +17,7 @@ for p in 2; do | ||
66 | ${OBJ}/.putty/sessions/compression_$c | ||
67 | echo "Compression=$c" >> ${OBJ}/.putty/sessions/kex_$k | ||
68 | env HOME=$PWD ${PLINK} -load compression_$c -batch \ | ||
69 | - -i putty.rsa$p 127.0.0.1 cat ${DATA} > ${COPY} | ||
70 | + -i putty.rsa$p cat ${DATA} > ${COPY} | ||
71 | if [ $? -ne 0 ]; then | ||
72 | fail "ssh cat $DATA failed" | ||
73 | fi | ||
74 | @@ -28,7 +28,7 @@ for p in 2; do | ||
75 | rm -f ${COPY} | ||
76 | dd if=$DATA obs=${s} 2> /dev/null | \ | ||
77 | env HOME=$PWD ${PLINK} -load compression_$c \ | ||
78 | - -batch -i putty.rsa$p 127.0.0.1 \ | ||
79 | + -batch -i putty.rsa$p \ | ||
80 | "cat > ${COPY}" | ||
81 | if [ $? -ne 0 ]; then | ||
82 | fail "ssh cat $DATA failed" | ||
83 | diff --git a/regress/test-exec.sh b/regress/test-exec.sh | ||
84 | index 1b6526d..74b365c 100644 | ||
85 | --- a/regress/test-exec.sh | ||
86 | +++ b/regress/test-exec.sh | ||
87 | @@ -513,7 +513,11 @@ if test "$REGRESS_INTEROP_PUTTY" = "yes" ; then | ||
88 | |||
89 | # Add a PuTTY key to authorized_keys | ||
90 | rm -f ${OBJ}/putty.rsa2 | ||
91 | - puttygen -t rsa -o ${OBJ}/putty.rsa2 < /dev/null > /dev/null | ||
92 | + if ! puttygen -t rsa -o ${OBJ}/putty.rsa2 \ | ||
93 | + --new-passphrase /dev/null < /dev/null > /dev/null; then | ||
94 | + echo "Your installed version of PuTTY is too old to support --new-passphrase; trying without (may require manual interaction) ..." >&2 | ||
95 | + puttygen -t rsa -o ${OBJ}/putty.rsa2 < /dev/null > /dev/null | ||
96 | + fi | ||
97 | puttygen -O public-openssh ${OBJ}/putty.rsa2 \ | ||
98 | >> $OBJ/authorized_keys_$USER | ||
99 | |||
100 | @@ -526,10 +530,12 @@ if test "$REGRESS_INTEROP_PUTTY" = "yes" ; then | ||
101 | # Setup proxied session | ||
102 | mkdir -p ${OBJ}/.putty/sessions | ||
103 | rm -f ${OBJ}/.putty/sessions/localhost_proxy | ||
104 | - echo "Hostname=127.0.0.1" >> ${OBJ}/.putty/sessions/localhost_proxy | ||
105 | + echo "Protocol=ssh" >> ${OBJ}/.putty/sessions/localhost_proxy | ||
106 | + echo "HostName=127.0.0.1" >> ${OBJ}/.putty/sessions/localhost_proxy | ||
107 | echo "PortNumber=$PORT" >> ${OBJ}/.putty/sessions/localhost_proxy | ||
108 | echo "ProxyMethod=5" >> ${OBJ}/.putty/sessions/localhost_proxy | ||
109 | echo "ProxyTelnetCommand=sh ${SRC}/sshd-log-wrapper.sh ${TEST_SSHD_LOGFILE} ${SSHD} -i -f $OBJ/sshd_proxy" >> ${OBJ}/.putty/sessions/localhost_proxy | ||
110 | + echo "ProxyLocalhost=1" >> ${OBJ}/.putty/sessions/localhost_proxy | ||
111 | |||
112 | REGRESS_INTEROP_PUTTY=yes | ||
113 | fi | ||
diff --git a/debian/patches/series b/debian/patches/series index a968a036d..8dfd83f16 100644 --- a/debian/patches/series +++ b/debian/patches/series | |||
@@ -26,3 +26,4 @@ sigstop.patch | |||
26 | systemd-readiness.patch | 26 | systemd-readiness.patch |
27 | debian-config.patch | 27 | debian-config.patch |
28 | unregister-kexinit.patch | 28 | unregister-kexinit.patch |
29 | fix-putty-interop-tests.patch | ||
diff --git a/debian/tests/control b/debian/tests/control index ab5122f46..5a54be563 100644 --- a/debian/tests/control +++ b/debian/tests/control | |||
@@ -1,3 +1,3 @@ | |||
1 | Tests: regress | 1 | Tests: regress |
2 | Restrictions: needs-root allow-stderr | 2 | Restrictions: needs-root allow-stderr |
3 | Depends: @builddeps@, openssh-client, openssh-server, openssh-sftp-server, sudo, python-twisted-conch (>= 1:15.5.0-1) | 3 | Depends: @builddeps@, openssh-client, openssh-server, openssh-sftp-server, sudo, putty-tools (>= 0.67-2), python-twisted-conch (>= 1:15.5.0-1) |
diff --git a/debian/tests/regress b/debian/tests/regress index 4cd90175b..253541ad5 100644 --- a/debian/tests/regress +++ b/debian/tests/regress | |||
@@ -30,6 +30,8 @@ make -C regress \ | |||
30 | SUDO=sudo \ | 30 | SUDO=sudo \ |
31 | TEST_SHELL=sh \ | 31 | TEST_SHELL=sh \ |
32 | TEST_SSH_SFTPSERVER=/usr/lib/openssh/sftp-server \ | 32 | TEST_SSH_SFTPSERVER=/usr/lib/openssh/sftp-server \ |
33 | TEST_SSH_PLINK=plink \ | ||
34 | TEST_SSH_PUTTYGEN=puttygen \ | ||
33 | TEST_SSH_CONCH=conch \ | 35 | TEST_SSH_CONCH=conch \ |
34 | TEST_SSH_IPV6=yes \ | 36 | TEST_SSH_IPV6=yes \ |
35 | TEST_SSH_ECC=yes \ | 37 | TEST_SSH_ECC=yes \ |
diff --git a/regress/putty-ciphers.sh b/regress/putty-ciphers.sh index 724a98cc1..3775b1d80 100644 --- a/regress/putty-ciphers.sh +++ b/regress/putty-ciphers.sh | |||
@@ -16,7 +16,7 @@ for c in aes blowfish 3des arcfour aes128-ctr aes192-ctr aes256-ctr ; do | |||
16 | 16 | ||
17 | rm -f ${COPY} | 17 | rm -f ${COPY} |
18 | env HOME=$PWD ${PLINK} -load cipher_$c -batch -i putty.rsa2 \ | 18 | env HOME=$PWD ${PLINK} -load cipher_$c -batch -i putty.rsa2 \ |
19 | 127.0.0.1 cat ${DATA} > ${COPY} | 19 | cat ${DATA} > ${COPY} |
20 | if [ $? -ne 0 ]; then | 20 | if [ $? -ne 0 ]; then |
21 | fail "ssh cat $DATA failed" | 21 | fail "ssh cat $DATA failed" |
22 | fi | 22 | fi |
diff --git a/regress/putty-kex.sh b/regress/putty-kex.sh index 1844d6599..6ae229005 100644 --- a/regress/putty-kex.sh +++ b/regress/putty-kex.sh | |||
@@ -14,8 +14,7 @@ for k in dh-gex-sha1 dh-group1-sha1 dh-group14-sha1 ; do | |||
14 | ${OBJ}/.putty/sessions/kex_$k | 14 | ${OBJ}/.putty/sessions/kex_$k |
15 | echo "KEX=$k" >> ${OBJ}/.putty/sessions/kex_$k | 15 | echo "KEX=$k" >> ${OBJ}/.putty/sessions/kex_$k |
16 | 16 | ||
17 | env HOME=$PWD ${PLINK} -load kex_$k -batch -i putty.rsa2 \ | 17 | env HOME=$PWD ${PLINK} -load kex_$k -batch -i putty.rsa2 true |
18 | 127.0.0.1 true | ||
19 | if [ $? -ne 0 ]; then | 18 | if [ $? -ne 0 ]; then |
20 | fail "KEX $k failed" | 19 | fail "KEX $k failed" |
21 | fi | 20 | fi |
diff --git a/regress/putty-transfer.sh b/regress/putty-transfer.sh index aec0e04ee..cb1da94fa 100644 --- a/regress/putty-transfer.sh +++ b/regress/putty-transfer.sh | |||
@@ -17,7 +17,7 @@ for p in 2; do | |||
17 | ${OBJ}/.putty/sessions/compression_$c | 17 | ${OBJ}/.putty/sessions/compression_$c |
18 | echo "Compression=$c" >> ${OBJ}/.putty/sessions/kex_$k | 18 | echo "Compression=$c" >> ${OBJ}/.putty/sessions/kex_$k |
19 | env HOME=$PWD ${PLINK} -load compression_$c -batch \ | 19 | env HOME=$PWD ${PLINK} -load compression_$c -batch \ |
20 | -i putty.rsa$p 127.0.0.1 cat ${DATA} > ${COPY} | 20 | -i putty.rsa$p cat ${DATA} > ${COPY} |
21 | if [ $? -ne 0 ]; then | 21 | if [ $? -ne 0 ]; then |
22 | fail "ssh cat $DATA failed" | 22 | fail "ssh cat $DATA failed" |
23 | fi | 23 | fi |
@@ -28,7 +28,7 @@ for p in 2; do | |||
28 | rm -f ${COPY} | 28 | rm -f ${COPY} |
29 | dd if=$DATA obs=${s} 2> /dev/null | \ | 29 | dd if=$DATA obs=${s} 2> /dev/null | \ |
30 | env HOME=$PWD ${PLINK} -load compression_$c \ | 30 | env HOME=$PWD ${PLINK} -load compression_$c \ |
31 | -batch -i putty.rsa$p 127.0.0.1 \ | 31 | -batch -i putty.rsa$p \ |
32 | "cat > ${COPY}" | 32 | "cat > ${COPY}" |
33 | if [ $? -ne 0 ]; then | 33 | if [ $? -ne 0 ]; then |
34 | fail "ssh cat $DATA failed" | 34 | fail "ssh cat $DATA failed" |
diff --git a/regress/test-exec.sh b/regress/test-exec.sh index 1b6526d0b..74b365cac 100644 --- a/regress/test-exec.sh +++ b/regress/test-exec.sh | |||
@@ -513,7 +513,11 @@ if test "$REGRESS_INTEROP_PUTTY" = "yes" ; then | |||
513 | 513 | ||
514 | # Add a PuTTY key to authorized_keys | 514 | # Add a PuTTY key to authorized_keys |
515 | rm -f ${OBJ}/putty.rsa2 | 515 | rm -f ${OBJ}/putty.rsa2 |
516 | puttygen -t rsa -o ${OBJ}/putty.rsa2 < /dev/null > /dev/null | 516 | if ! puttygen -t rsa -o ${OBJ}/putty.rsa2 \ |
517 | --new-passphrase /dev/null < /dev/null > /dev/null; then | ||
518 | echo "Your installed version of PuTTY is too old to support --new-passphrase; trying without (may require manual interaction) ..." >&2 | ||
519 | puttygen -t rsa -o ${OBJ}/putty.rsa2 < /dev/null > /dev/null | ||
520 | fi | ||
517 | puttygen -O public-openssh ${OBJ}/putty.rsa2 \ | 521 | puttygen -O public-openssh ${OBJ}/putty.rsa2 \ |
518 | >> $OBJ/authorized_keys_$USER | 522 | >> $OBJ/authorized_keys_$USER |
519 | 523 | ||
@@ -526,10 +530,12 @@ if test "$REGRESS_INTEROP_PUTTY" = "yes" ; then | |||
526 | # Setup proxied session | 530 | # Setup proxied session |
527 | mkdir -p ${OBJ}/.putty/sessions | 531 | mkdir -p ${OBJ}/.putty/sessions |
528 | rm -f ${OBJ}/.putty/sessions/localhost_proxy | 532 | rm -f ${OBJ}/.putty/sessions/localhost_proxy |
529 | echo "Hostname=127.0.0.1" >> ${OBJ}/.putty/sessions/localhost_proxy | 533 | echo "Protocol=ssh" >> ${OBJ}/.putty/sessions/localhost_proxy |
534 | echo "HostName=127.0.0.1" >> ${OBJ}/.putty/sessions/localhost_proxy | ||
530 | echo "PortNumber=$PORT" >> ${OBJ}/.putty/sessions/localhost_proxy | 535 | echo "PortNumber=$PORT" >> ${OBJ}/.putty/sessions/localhost_proxy |
531 | echo "ProxyMethod=5" >> ${OBJ}/.putty/sessions/localhost_proxy | 536 | echo "ProxyMethod=5" >> ${OBJ}/.putty/sessions/localhost_proxy |
532 | echo "ProxyTelnetCommand=sh ${SRC}/sshd-log-wrapper.sh ${TEST_SSHD_LOGFILE} ${SSHD} -i -f $OBJ/sshd_proxy" >> ${OBJ}/.putty/sessions/localhost_proxy | 537 | echo "ProxyTelnetCommand=sh ${SRC}/sshd-log-wrapper.sh ${TEST_SSHD_LOGFILE} ${SSHD} -i -f $OBJ/sshd_proxy" >> ${OBJ}/.putty/sessions/localhost_proxy |
538 | echo "ProxyLocalhost=1" >> ${OBJ}/.putty/sessions/localhost_proxy | ||
533 | 539 | ||
534 | REGRESS_INTEROP_PUTTY=yes | 540 | REGRESS_INTEROP_PUTTY=yes |
535 | fi | 541 | fi |