ssh-askpass on Mac OS 10.9/Mavericks broken?
Problem solved! When in doubt, read the source...
ssh-agent won't call ssh-askpass unless the DISPLAY env variable is set. Most likely it has been working on earlier installations, since I had X11 installed. Not on this box (yet).
Workaround:
Patch the ssh-agent LaunchAgents file:
--- org.openbsd.ssh-agent.plist.orig 2014-05-22 09:55:53.000000000 +0200
+++ /System/Library/LaunchAgents/org.openbsd.ssh-agent.plist 2014-05-22 09:56:31.000000000 +0200
@@ -9,6 +9,11 @@
<string>/usr/bin/ssh-agent</string>
<string>-l</string>
</array>
+ <key>EnvironmentVariables</key>
+ <dict>
+ <key>DISPLAY</key>
+ <string>:0</string>
+ </dict>
<key>ServiceIPC</key>
<true/>
<key>Sockets</key>
Then restart your computer.
Or reload it by force, however SSH_AUTH_SOCK will be invalid in all new terminal sessions:
launchctl unload /System/Library/LaunchAgents/org.openbsd.ssh-agent.plist
launchctl load /System/Library/LaunchAgents/org.openbsd.ssh-agent.plist
export SSH_AUTH_SOCK=$(launchctl getenv SSH_AUTH_SOCK)
ssh-add -c ....
Problem solved!
Note: the ssh-agent plist file will probably be overwritten on upgrade... Might be cleaner ways to ensure DISPLAY is set.