The ssh command has a BatchMode option to disable passphrase/password querying, but not ssh-add. Such an option would be useful so that identities without a passphrase could still be added without blocking a script (that is attached to a terminal for some reason).
ssh-add < /dev/null ?
(In reply to Damien Miller from comment #1) > ssh-add < /dev/null ? The "< /dev/null" has no effect when $DISPLAY is NOT set: $ env -u DISPLAY ssh-add < /dev/null Enter passphrase for /home/vinc17/.ssh/id_rsa: while it avoids that when DISPLAY is set: $ ssh-add < /dev/null ssh_askpass: exec(/usr/bin/ssh-askpass): No such file or directory BTW, I don't know why I get such an error instead of a silent failure (note that $SSH_ASKPASS is not set). "ssh_askpass" is not documented in the ssh-add man page. My machine is under Debian/unstable, with OpenSSH_6.6.1p1.