mirror of
https://github.com/PowerShell/openssh-portable.git
synced 2025-07-30 17:25:09 +02:00
upstream: check public host key matches private; ok markus@ (as
part of previous diff) OpenBSD-Commit-ID: 65a4f66436028748b59fb88b264cb8c94ce2ba63
This commit is contained in:
parent
c514f3c052
commit
7775819c6d
13
sshd.c
13
sshd.c
@ -1,4 +1,4 @@
|
|||||||
/* $OpenBSD: sshd.c,v 1.556 2020/06/05 06:18:07 djm Exp $ */
|
/* $OpenBSD: sshd.c,v 1.557 2020/06/18 23:34:19 djm Exp $ */
|
||||||
/*
|
/*
|
||||||
* Author: Tatu Ylonen <ylo@cs.hut.fi>
|
* Author: Tatu Ylonen <ylo@cs.hut.fi>
|
||||||
* Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
|
* Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
|
||||||
@ -1849,10 +1849,19 @@ main(int ac, char **av)
|
|||||||
&pubkey, NULL)) != 0 && r != SSH_ERR_SYSTEM_ERROR)
|
&pubkey, NULL)) != 0 && r != SSH_ERR_SYSTEM_ERROR)
|
||||||
do_log2(ll, "Unable to load host key \"%s\": %s",
|
do_log2(ll, "Unable to load host key \"%s\": %s",
|
||||||
options.host_key_files[i], ssh_err(r));
|
options.host_key_files[i], ssh_err(r));
|
||||||
if (pubkey == NULL && key != NULL)
|
if (pubkey != NULL && key != NULL) {
|
||||||
|
if (!sshkey_equal(pubkey, key)) {
|
||||||
|
error("Public key for %s does not match "
|
||||||
|
"private key", options.host_key_files[i]);
|
||||||
|
sshkey_free(pubkey);
|
||||||
|
pubkey = NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (pubkey == NULL && key != NULL) {
|
||||||
if ((r = sshkey_from_private(key, &pubkey)) != 0)
|
if ((r = sshkey_from_private(key, &pubkey)) != 0)
|
||||||
fatal("Could not demote key: \"%s\": %s",
|
fatal("Could not demote key: \"%s\": %s",
|
||||||
options.host_key_files[i], ssh_err(r));
|
options.host_key_files[i], ssh_err(r));
|
||||||
|
}
|
||||||
sensitive_data.host_keys[i] = key;
|
sensitive_data.host_keys[i] = key;
|
||||||
sensitive_data.host_pubkeys[i] = pubkey;
|
sensitive_data.host_pubkeys[i] = pubkey;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user