UpdateHostkeys now enabled by default

Mark D. Baushke mdb at juniper.net
Mon Oct 5 01:00:29 AEDT 2020


Damien Miller <djm at mindrot.org> writes:

> On Sat, 3 Oct 2020, Mark D. Baushke wrote:
> 
> > UpdateHostkeys is an interesting feature. I hope you plan to document it
> > somewhat better in the ssh_config.5 file than is currently present?
> >
> > My reading of the documentation is that it is ambiguous as to the
> > following:
> >
> >   if StrictHostKeyChecking=yes and UpdateHostkeys=yes
> >   which option wins?
> >
> >   (My vote is that StrictHostKeyChecking=yes wins every time.)
> 
> They are almost completely separate:
> 
> StrictHostKeyChecking controls the circumstances under which a hostkey
> is accepted.
> 
> UpdateHostkeys controls whether to try to learn additional hostkeys
> for a host with an already trusted host key.
>
> The small point of interaction is when StrictHostKeyChecking=no and
> the user elects to continue past a changed hostkey. I'll double-check
> to make sure that UpdateHostkeys gets turned off along the other options
> that are disabled in this case.

Okay. I do think that the man page should be updated to tell the user
how these switches interact.

> >   If the hostkey that matches is found in GlobalKnownHostsFile, then I
> >   hope that the UpdateHostKeys is NOT used to update the
> >   UserKnownHostsFile ...
> >
> >   My vote is to assume that the GlobalKnownHostsFile is being properly
> >   managed and maintained for the listed hosts and UpdateHostKeys would
> >   be ignored in this case.
> 
> Good point. I'll implement this.

Thank you very much.

> >   I am unclear what happens with UpdateHostKeys when the key is found
> >   via DNS SSHFP and the use of VerifyHostKeyDNS settings.
> >
> >   My vote is that if the key is found in DNS SSHFP records, the
> >   UpdateHostKeys does NOT get used to add to the UserKnownHostsFile.
> 
> Another good point. I'll do this too :)

Thank you very much.

> >   How do CheckHostIP=yes and UpdateHostKeys play together?
> >   It is not clear to me if the HostIP fingerprints AND the Hostname
> >   fingerprint recards are BOTH to be added via the UpdateHostKeys
> >   directive or not.
> 
> They should play just fine (modulo bugs like the one Matthieu reported).
> Keys learned by UpdateHostKeys should behave exactly like ones learned
> by TOFU with respect to CheckHostIP and HashKnownHosts.

Yes. I had not cosidered how HashKnownHosts would work or what happens
with both IPv4 and IPv6 hostnames.

There may be one additional edge condition, when the host is actually a
bastian host that has an internal NAT'ed IP address and an external IP
address. Things like that get tricky when CheckHostIP=yes and an
UpdateHostKeys may only update the currently visible IP address even
though the user has previously added the old key for both IP addresses
manually. I still need to think about how that one should work.

Of course, there is another edge case I run into which is where the
hostname is using DynDNS with a dynamic IP address where I would rather
it NOT record the IP address for a particular subdomain of hosts or need
to explicity override config optios on the command-line.

	Be safe, stay healthy,
	-- Mark


More information about the openssh-unix-dev mailing list