[openssh-commits] [openssh] 01/01: Add sshfp-connect.sh file missed in previous.

git+noreply at mindrot.org git+noreply at mindrot.org
Mon Jul 19 13:48:10 AEST 2021


This is an automated email from the git hooks/post-receive script.

dtucker pushed a commit to branch master
in repository openssh.

commit 7953e1bfce9e76bec41c1331a29bc6cff9d416b8
Author: Darren Tucker <dtucker at dtucker.net>
Date:   Mon Jul 19 13:47:51 2021 +1000

    Add sshfp-connect.sh file missed in previous.
---
 regress/sshfp-connect.sh | 66 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 66 insertions(+)

diff --git a/regress/sshfp-connect.sh b/regress/sshfp-connect.sh
new file mode 100644
index 00000000..02d5cd2b
--- /dev/null
+++ b/regress/sshfp-connect.sh
@@ -0,0 +1,66 @@
+#	$OpenBSD: sshfp-connect.sh,v 1.1 2021/07/19 02:46:34 dtucker Exp $
+#	Placed in the Public Domain.
+
+# This test requires external setup and thus is skipped unless
+# TEST_SSH_SSHFP_DOMAIN is set.  It requires:
+# 1) A DNSSEC-enabled domain, which TEST_SSH_SSHFP_DOMAIN points to.
+# 2) A DNSSEC-validating resolver such as unwind(8).
+# 3) The following SSHFP records with fingerprints from rsa_openssh.pub
+#    in that domain that are expected to succeed:
+#      sshtest: valid sha1 and sha256 fingerprints.
+#      sshtest-sha{1,256}, : valid fingerprints for that type only.
+#    and the following records that are expected to fail:
+#      sshtest-bad: invalid sha1 fingerprint and good sha256 fingerprint
+#      sshtest-sha{1,256}-bad: invalid fingerprints for that type only.
+#
+# sshtest IN SSHFP 1 1 99C79CC09F5F81069CC017CDF9552CFC94B3B929
+# sshtest IN SSHFP 1 2 E30D6B9EB7A4DE495324E4D5870B8220577993EA6AF417E8E4A4F1C5 BF01A9B6
+# sshtest-sha1 IN SSHFP 1 1 99C79CC09F5F81069CC017CDF9552CFC94B3B929
+# sshtest-sha256 IN SSHFP 1 2 E30D6B9EB7A4DE495324E4D5870B8220577993EA6AF417E8E4A4F1C5 BF01A9B6
+# sshtest-bad IN SSHFP 1 2 E30D6B9EB7A4DE495324E4D5870B8220577993EA6AF417E8E4A4F1C5 BF01A9B6
+# sshtest-bad IN SSHFP 1 1 99C79CC09F5F81069CC017CDF9552CFC94B3B928
+# sshtest-sha1-bad IN SSHFP 1 1 99D79CC09F5F81069CC017CDF9552CFC94B3B929
+# sshtest-sha256-bad IN SSHFP 1 2 E30D6B9EB7A4DE495324E4D5870B8220577993EA6AF417E8E4A4F1C5 BF01A9B5
+
+tid="sshfp connect"
+
+if [ ! -z "${TEST_SSH_SSHFP_DOMAIN}" ] && \
+    $SSH -Q key-plain | grep ssh-rsa >/dev/null; then
+
+	# Set RSA host key to match fingerprints above.
+	mv $OBJ/sshd_proxy $OBJ/sshd_proxy.orig
+	cp $SRC/rsa_openssh.prv $OBJ/host.ssh-rsa
+	chmod 600 $OBJ/host.ssh-rsa
+	sed -e "s|$OBJ/ssh-rsa|$OBJ/host.ssh-rsa|" \
+	    $OBJ/sshd_proxy.orig > $OBJ/sshd_proxy
+
+	# Zero out known hosts and key aliases to force use of SSHFP records.
+	> $OBJ/known_hosts
+	mv $OBJ/ssh_proxy $OBJ/ssh_proxy.orig
+	sed -e "/HostKeyAlias.*localhost-with-alias/d" \
+	    -e "/Hostname.*127.0.0.1/d" \
+	    $OBJ/ssh_proxy.orig > $OBJ/ssh_proxy
+
+	for n in sshtest sshtest-sha1 sshtest-sha256; do
+		trace "sshfp connect $n good fingerprint"
+		host="${n}.dtucker.net"
+		opts="-F $OBJ/ssh_proxy -o VerifyHostKeyDNS=yes "
+		opts="$opts -o HostKeyAlgorithms=ssh-rsa"
+		host="${n}.${TEST_SSH_SSHFP_DOMAIN}"
+		SSH_CONNECTION=`${SSH} $opts $host 'echo $SSH_CONNECTION'`
+		if [ $? -ne 0 ]; then
+			fail "ssh sshfp connect failed"
+		fi
+		if [ "$SSH_CONNECTION" != "UNKNOWN 65535 UNKNOWN 65535" ]; then
+			fail "bad SSH_CONNECTION: $SSH_CONNECTION"
+		fi
+
+		trace "sshfp connect $n bad fingerprint"
+		host="${n}-bad.${TEST_SSH_SSHFP_DOMAIN}"
+		if ${SSH} $opts ${host} true; then
+			fail "sshfp-connect succeeded with bad SSHFP record"
+		fi
+	done
+else
+	echo SKIPPED: TEST_SSH_SSHFP_DOMAIN not set.
+fi

-- 
To stop receiving notification emails like this one, please contact
djm at mindrot.org.


More information about the openssh-commits mailing list