Folks, MacOSX 10.6.x (Snow Leopard) runs { ssh-agent -l }; that's not an s/ssh-add/ssh-agent/ typo. It appears to be an undocumented addition (the man-pages were not updated). I *suspect* that it just tells the agent to honour whatever pre-existing value of $SSH_AUTH_SOCK it inherits and to try to listen to that. I don't know for sure. Does anyone have details on what exactly it does, please? I'm tempted to hack a more recent OpenSSH's ssh-agent to support it, so I can switch which agent is launched by launchd and then load ECDSA keys. Thanks, -Phil
Phil Pennock wrote:> Does anyone have details on what exactly it does, please?http://opensource.apple.com/source/OpenSSH/OpenSSH-142/openssh/ssh-agent.c Search for #ifdef __APPLE_LAUNCHD__ //Peter
> MacOSX 10.6.x (Snow Leopard) runs { ssh-agent -l }; that's not an > s/ssh-add/ssh-agent/ typo. It appears to be an undocumented addition > (the man-pages were not updated).look for the #ifdef __APPLE_LAUNCHD__ portions of: http://opensource.apple.com/source/OpenSSH/OpenSSH-166/openssh/ssh-agent.c> I *suspect* that it just tells the agent to honour whatever pre-existing > value of $SSH_AUTH_SOCK it inherits and to try to listen to that. I > don't know for sure.that's correct. launchd sets up the socket via /System/Library/LaunchAgents/org.openbsd.ssh-agent.plist and assigns it to $SSH_AUTH_SOCK. when ssh tries to read from that socket, it tells launchd to fire up ssh-agent.
Phil Pennock wrote:> Folks, > > MacOSX 10.6.x (Snow Leopard) runs { ssh-agent -l }; that's not an > s/ssh-add/ssh-agent/ typo. It appears to be an undocumented addition > (the man-pages were not updated). > > I *suspect* that it just tells the agent to honour whatever pre-existing > value of $SSH_AUTH_SOCK it inherits and to try to listen to that. I > don't know for sure. > > Does anyone have details on what exactly it does, please?I don't have a Mac OS X to play with it, but if you have, sure you can test its behavior with and without that parameter, and what it does? Note you can get almost the same effect you want by doing: ssh-agent -a ${SSH_AUTH_SOCK:-$(mktemp -d --tmpdir ssh-XXXXXXXXXXXX)/agent.$$}