OpenSSH uses a link to take a backup while replacing the known_hosts
file:
(1) link known_hosts to known_hosts.old
(2) move new file to known_hosts (overwriting the link there)
Since links are not allowed we replace link with rename:
(1) rename known_hosts to known_hosts.old
(2) move new file to known_hosts
This means that there is a window between (1) and (2) where the
known_hosts file is not available, but that is a really short window
and is hopefully acceptable here.
Fixes#2909.