[Edited: 10/6/08 Remove temporary files before starting a new agent]
Another little annoyance gone: all Cygwin processes now share a single ssh-agent instance, which is started up automatically as required. I picked this tip up from a now-forgotten blog. the only change required to that recipe being to re-order the redirections for the ssh-agent command. Since it took me a while to find (low Google-fu today?) I take the liberty of repeating it here so I don't forget it.
In your ~/.bashrc file add the following:
export SSH_AUTH_SOCK=/tmp/.ssh-socket
ssh-add -l >/dev/null 2>&1
if [ $? = 2 ]; then
# Exit status 2 means couldn't connect to ssh-agent; start one now
rm -rf /tmp/.ssh-*
ssh-agent -a $SSH_AUTH_SOCK >/tmp/.ssh-script
. /tmp/.ssh-script
echo $SSH_AGENT_PID >/tmp/.ssh-agent-pid
fi
function kill-agent {
pid=`cat /tmp/.ssh-agent-pid`
kill $pid
}
You can use Start | My Computer | Properties | Advanced | Environment Variables to add an environment variable called SSH_AUTH_SOCK whose value is /tmp/.ssh-socket to make the agent available to other Cygwin-aware processes you run under Windows.
That's better!
For some reason a number of posts were stuck in the blog as drafts. This one is from October last year.
3 comments:
Nice post. Very useful.
I've been looking for something like this myself and this works like a charm, thanks! Though I didn't need to set a Windows environment variable to have the agent available to subsequent rxvts.
Glad you found it useful. I have since given up on rxvt, having found mintty to be a much more satisfactory alternative.
Post a Comment