upstream: allow hostbased auth to select RSA keys when only

RSA/SHA2 are configured (this is the default case); ok markus@

OpenBSD-Commit-ID: 411c18c7bde40c60cc6dfb7017968577b4d4a827
This commit is contained in:
djm@openbsd.org 2022-01-06 22:06:51 +00:00 committed by Damien Miller
parent fdb1d58d0d
commit d9dbb5d9a0

View File

@ -1,4 +1,4 @@
/* $OpenBSD: sshconnect2.c,v 1.354 2021/12/19 22:14:47 djm Exp $ */ /* $OpenBSD: sshconnect2.c,v 1.355 2022/01/06 22:06:51 djm Exp $ */
/* /*
* Copyright (c) 2000 Markus Friedl. All rights reserved. * Copyright (c) 2000 Markus Friedl. All rights reserved.
* Copyright (c) 2008 Damien Miller. All rights reserved. * Copyright (c) 2008 Damien Miller. All rights reserved.
@ -2169,9 +2169,9 @@ userauth_hostbased(struct ssh *ssh)
if (authctxt->sensitive->keys[i] == NULL || if (authctxt->sensitive->keys[i] == NULL ||
authctxt->sensitive->keys[i]->type == KEY_UNSPEC) authctxt->sensitive->keys[i]->type == KEY_UNSPEC)
continue; continue;
if (match_pattern_list( if (!sshkey_match_keyname_to_sigalgs(
sshkey_ssh_name(authctxt->sensitive->keys[i]), sshkey_ssh_name(authctxt->sensitive->keys[i]),
authctxt->active_ktype, 0) != 1) authctxt->active_ktype))
continue; continue;
/* we take and free the key */ /* we take and free the key */
private = authctxt->sensitive->keys[i]; private = authctxt->sensitive->keys[i];
@ -2197,7 +2197,8 @@ userauth_hostbased(struct ssh *ssh)
error_f("sshkey_fingerprint failed"); error_f("sshkey_fingerprint failed");
goto out; goto out;
} }
debug_f("trying hostkey %s %s", sshkey_ssh_name(private), fp); debug_f("trying hostkey %s %s using sigalg %s",
sshkey_ssh_name(private), fp, authctxt->active_ktype);
/* figure out a name for the client host */ /* figure out a name for the client host */
lname = get_local_name(ssh_packet_get_connection_in(ssh)); lname = get_local_name(ssh_packet_get_connection_in(ssh));