Xfce, Keychain And Two ssh-agents
Posted by fordfrog | Filed under Linux
While trying to find out how to make NetBeans work with keychain, I noticed that after I start Xfce and then keychain is run from my .bashrc, I end up with two ssh-agents running instead of one. I did not find out why it works this way, only thing I found out is that SSH_AGENT_PID is empty when running .bashrc, and I was not willing to dig deeper to find the cause. Anyway, I made a small patch that makes Xfce work with keychain:
--- /etc/xdg/xfce4/xinitrc.orig 2010-07-17 18:43:00.025468585 +0200
+++ /etc/xdg/xfce4/xinitrc 2010-07-17 18:54:10.045657796 +0200
@@ -113,7 +113,11 @@
sshagent=`which ssh-agent`
kill_sshagent=0
if test -z "$SSH_AGENT_PID" -a "$sshagent" -a "x$sshagent" != "xno"; then
- eval `$sshagent -s`
+ if test ! -e $HOME/.keychain; then
+ mkdir $HOME/.keychain
+ fi
+ $sshagent -s | grep -v "echo Agent pid" > $HOME/.keychain/$HOSTNAME-sh
+ . $HOME/.keychain/$HOSTNAME-sh
kill_sshagent=1
fi
The patch saves output of ssh-agent into file that keychain uses so keychain then reuses the current data and does not have to spawn new ssh-agent. just to make the info complete, this is what i have in my .bashrc:
keychain -q
. ~/.keychain/$HOSTNAME-sh
. ~/.keychain/$HOSTNAME-sh-gpg
bug report at xfce: bug 6558
Tags: Keychain, ssh-agent, Xfce
Leave a Reply
You must be logged in to post a comment.