"ssh-keygen -R hostname" errors out with non-existent known_hosts

Brian Candler b.candler at pobox.com
Wed Mar 24 18:59:12 AEDT 2021


On 24/03/2021 02:42, Peter Moody wrote:
>> Its job is to ensure the next ssh to that host will not have an old
>> host key in the way. If there’s no known_hosts file, that’s done.
> one could make the same argument about umount; it's job is to make
> sure a particular device isn't mounted
>
>    $ umount: /mnt/this-disk-does-not-exist: no mount point specified.
>    umount: /mnt/this-disk-does-not-exist: no mount point specified.
>    $ echo $?
>    32
>
Or even just "rm":

$ rm nonexistent
rm: cannot remove 'nonexistent': No such file or directory
$ echo $?
1

But in this case, there is a flag to get the other behaviour.

$ rm -f nonexistent
$ echo $?
0

If the requirement is "to ensure the next ssh to that host will not have 
an old host key in the way", and you are doing this on every connection 
to that host, then you could simply ignore the known_hosts file entirely:

host *.foo.bar
   StrictHostKeyChecking no
   UserKnownHostsFile /dev/null
   LogLevel ERROR

I do this for test VMs which are being frequently deleted and recreated.



More information about the openssh-unix-dev mailing list