Hari Sekhon wrote:
> I also use this a lot and would be interested in a solution to this.
>
> To my knowledge it requires the password when invoked initially to
> decrypt the private key.
>
> There seems to be every option except that one you've asked for.
> Alternatives could be to lock and unlock your agent to prevent
> unattended logins, but this is nearly as much hassle as not using the
> agent at all and manually entering the password to decrypt the private
> on every use...
>
> Or to require a lifetime on the key loaded, but again, not 100%
> convenient.
>
> If anyone knows an answer to this, I'd also like to change my agent
> behaviour to this... I suspect that the software does not support such
> a feature at this time...
>
> As a workaround, you could function off all ssh calls to invoke the
> agent, check if it has your key and if not, then source it, asking you
> for the password one time, and then retaining it and using it for
> every future connection. Now I think about this, it's very easy to do
> in Bash....
>
> -h
>
> Hari Sekhon

I've done created a Bash solution for now,

alias ssh="ssh-add -l >/dev/null; if [ \$? = 1 ]; then ssh-add; fi; ssh"

hardly elegant, but it does the job. I'm not aware of any technical
reason why ssh-add couldn't defer requesting a password until its
required. If you use ssh without an agent, it only prompts for the
passphrase once its established that it can use the key to authenticate
itself. Looking at the relevent RFC this is by design, so that the
client only incurs the overheads of authenticating with a key if it
knows it can use it. Perhaps there's limitation is in the way that ssh
communicates with the agent.

Chris