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

Damien Miller djm at mindrot.org
Wed Mar 24 12:10:29 AEDT 2021


On Tue, 23 Mar 2021, Nico Kadel-Garcia wrote:

> On Tue, Mar 23, 2021 at 7:01 PM Damien Miller <djm at mindrot.org> wrote:
> >
> > On Tue, 23 Mar 2021, Nico Kadel-Garcia wrote:
> >
> > > I've just run into what I consider a bug: If ~/.ssh/known_hosts does
> > > not exist, and the account owner runs the command or their script
> > > includes the command "ssh-keygen -R {hostname}", it reports an error
> > > rather than reporting "oh, yes, the file was empty and therefore your
> > > attempt to delete the hostname was unnecessary".
> > >
> > > If I want to delete a hostkey entry, and there is none to be found,
> > > shouldn't that be considered a successful operation?
> >
> > I think the condition of known_hosts being absent is worth communicating.
> > Maybe a different exit value for that case?
> 
> Exit 0, please. An absent known_hosts file doesn't contain the entry
> the "ssh-keygen -R hostname" entry is expected to remove, and the
> result should be considered a success for the command.

I certainly don't agree.

"grep foo /nonexistent" or "sed -i s/foo/bar /nonexistent" don't return
status 0 either for exactly the same reason.

-d


More information about the openssh-unix-dev mailing list