[PATCH] ssh-add: support parser-friendly operation

Damien Miller djm at mindrot.org
Fri Jan 10 11:27:49 AEDT 2025


On Thu, 9 Jan 2025, Corey Hickey wrote:

> On 2025-01-09 15:27, Corey Hickey wrote:
> > From: Corey Hickey <chickey at tagged.com>
> > 
> > When ssh-add is used in a script like:
> > 
> >      if ! KEY_LISTING=$(ssh-add -l 2>&1) ; then
> >          echo "SSH agent error" >&2
> >          exit 2
> >      fi
> > 
> > ...the operation fails when there is an agent but there are no keys in
> > the agent. This is because ssh-add exits with status of 1. If the
> > intent is to examine the keys in the agent, then this behavior is
> > undesired and not easily distinguishable from an error (e.g. no agent
> > running).
> > 
> > To address this, add a new option -p to make ssh-add behavior more
> > friendly to parsing.
> 
> I took the approach of preserving current behavior by default, but another
> approach would be to:
> 
> * print "The agent has no identities." to stderr instead of stdout
> * exit with a status of 0 instead of 1
> 
> If that alternate approach would be better, please let me know and I
> will send a new patch.

Yeah, I think moving the message to stderr would be better. Adding a
new exit status for the no-keys-in-agent case would be acceptable too
I think.

-d


More information about the openssh-unix-dev mailing list