upstream: Enable all supported hostkey algorithms (but no others).

Allows hostbased test to pass when built without OpenSSL.

OpenBSD-Regress-ID: 5ddd677a68b672517e1e78460dc6ca2ccc0a9562
This commit is contained in:
dtucker@openbsd.org 2022-01-08 07:01:13 +00:00 committed by Darren Tucker
parent 12b457c2a4
commit 1a7c88e26f
1 changed files with 13 additions and 8 deletions

View File

@ -1,4 +1,4 @@
# $OpenBSD: hostbased.sh,v 1.1 2022/01/06 21:46:56 dtucker Exp $ # $OpenBSD: hostbased.sh,v 1.2 2022/01/08 07:01:13 dtucker Exp $
# Placed in the Public Domain. # Placed in the Public Domain.
# This test requires external setup and thus is skipped unless # This test requires external setup and thus is skipped unless
@ -18,20 +18,24 @@ elif [ -z "${SUDO}" ]; then
skip "SUDO not set" skip "SUDO not set"
fi fi
# Enable all supported hostkey algos (but no others)
hostkeyalgos=`${SSH} -Q HostKeyAlgorithms | tr '\n' , | sed 's/,$//'`
cat >>$OBJ/sshd_proxy <<EOD cat >>$OBJ/sshd_proxy <<EOD
HostbasedAuthentication yes HostbasedAuthentication yes
HostbasedAcceptedAlgorithms +ssh-rsa,ssh-dss HostbasedAcceptedAlgorithms $hostkeyalgos
HostbasedUsesNameFromPacketOnly yes HostbasedUsesNameFromPacketOnly yes
HostKeyAlgorithms +ssh-rsa,ssh-dss HostKeyAlgorithms $hostkeyalgos
EOD EOD
cat >>$OBJ/ssh_proxy <<EOD cat >>$OBJ/ssh_proxy <<EOD
HostbasedAuthentication yes HostbasedAuthentication yes
HostKeyAlgorithms +ssh-rsa,ssh-dss HostKeyAlgorithms $hostkeyalgos
HostbasedAcceptedAlgorithms +ssh-rsa,ssh-dss HostbasedAcceptedAlgorithms $hostkeyalgos
PreferredAuthentications hostbased PreferredAuthentications hostbased
EOD EOD
set -x
algos="" algos=""
for key in `${SUDO} ${SSHD} -T | awk '$1=="hostkey"{print $2}'`; do for key in `${SUDO} ${SSHD} -T | awk '$1=="hostkey"{print $2}'`; do
case "`$SSHKEYGEN -l -f ${key}.pub`" in case "`$SSHKEYGEN -l -f ${key}.pub`" in
@ -41,7 +45,7 @@ for key in `${SUDO} ${SSHD} -T | awk '$1=="hostkey"{print $2}'`; do
*RSA*) algos="$algos ssh-rsa rsa-sha2-256 rsa-sha2-512" ;; *RSA*) algos="$algos ssh-rsa rsa-sha2-256 rsa-sha2-512" ;;
*ED25519*) algos="$algos ssh-ed25519" ;; *ED25519*) algos="$algos ssh-ed25519" ;;
*DSA*) algos="$algos ssh-dss" ;; *DSA*) algos="$algos ssh-dss" ;;
*) warn "unknown host key type $key" ;; *) verbose "unknown host key type $key" ;;
esac esac
done done
@ -54,9 +58,10 @@ for algo in $algos; do
SSH_CONNECTION=`${SSH} $opts localhost 'echo $SSH_CONNECTION'` SSH_CONNECTION=`${SSH} $opts localhost 'echo $SSH_CONNECTION'`
if [ $? -ne 0 ]; then if [ $? -ne 0 ]; then
fail "connect failed, hostbased algo $algo" fail "connect failed, hostbased algo $algo"
fi elif [ "$SSH_CONNECTION" != "UNKNOWN 65535 UNKNOWN 65535" ]; then
if [ "$SSH_CONNECTION" != "UNKNOWN 65535 UNKNOWN 65535" ]; then
fail "hostbased algo $algo bad SSH_CONNECTION" \ fail "hostbased algo $algo bad SSH_CONNECTION" \
"$SSH_CONNECTION" "$SSH_CONNECTION"
else
verbose "ok hostbased algo $algo"
fi fi
done done