Re: Re: SSH host key rotation – known_hosts file not updated
Nico Kadel-Garcia
nkadel at gmail.com
Fri Oct 18 10:26:23 AEDT 2024
On Mon, Oct 14, 2024 at 5:33 AM Jan Eden via openssh-unix-dev
<openssh-unix-dev at mindrot.org> wrote:
redacted hostname and port – sorry, should have mentioned that.
>
> > Anyway, in answer to your question. The "host key found matching a different
> > name/address" is triggered when a key received from the server in an update
> > already exists under a different name. If you turn the debugging level up,
> > then you'll see the name(s) that it matches too:
> >
> > 2100 if (sshkey_equal(l->key, ctx->keys[i])) {
> > 2101 ctx->other_name_seen = 1;
> > 2102 debug3_f("found %s key under different "
> > 2103 "name/addr at %s:%ld",
> > 2104 sshkey_ssh_name(ctx->keys[i]),
> > 2105 l->path, l->linenum);
> > 2106 return 0;
> > 2107 }
> > 2108 }
>
> Thank you! Increasing the verbosity revealed a known_hosts entry linked
> to serverA's IP address (I had forgotten that I had connected to it by
> IP address at some point). Deleting this entry solved the problem; the
> new host key was stored in known_hosts when I connected to serverA
> again.
>
> - Jan
And... *THIS* is why so many people disable known_hosts entirely. The
chance of an IP address being reused for a distinct hostname is pretty
high in a DHCP environment without reservations, coupled with dynamic
DNS. It's also very common when servers get rebuilt from images and
fresh hostkeys generated automatically on the same hardware, even with
the same IP address. The popular solution is to simply disable
known_hosts in your ~/.ssh/config as needed:
# Disable known_hosts to avoid IP re-use conflicts
Host *
UserKnownHostsFile /dev/null
StrictHostKeyChecking no
LogLevel ERROR
More information about the openssh-unix-dev
mailing list