From 53411d03d68b93a903300ca14ba9b775450127d2 Mon Sep 17 00:00:00 2001 From: Florent Thoumie Date: Wed, 29 Dec 2010 14:18:39 +0000 Subject: [PATCH] plugins/ssh-agent: create symlink when doing agent forwarding Create symlink for screen/tmux when doing agent forwarding. This means agent forwarding keeps working after ssh deconnections. Screen will need the following added to .screenrc: setenv SSH_AUTH_SOCK "/tmp/ssh-agent-$USER-screen" --- plugins/ssh-agent/ssh-agent.plugin.zsh | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/plugins/ssh-agent/ssh-agent.plugin.zsh b/plugins/ssh-agent/ssh-agent.plugin.zsh index ce0d645c1..a2912e92f 100644 --- a/plugins/ssh-agent/ssh-agent.plugin.zsh +++ b/plugins/ssh-agent/ssh-agent.plugin.zsh @@ -10,14 +10,17 @@ function start_agent { /usr/bin/ssh-add; } -# Source SSH settings, if applicable - -if [ -f "${SSH_ENV}" ]; then - . ${SSH_ENV} > /dev/null - ps -ef | grep ${SSH_AGENT_PID} | grep ssh-agent$ > /dev/null || { - start_agent; - } +if [ -n "$SSH_AUTH_SOCK" ]; then + # Add a nifty symlink for screen/tmux if we're doing agent forwarding. + test -L $SSH_AUTH_SOCK || ln -sf "$SSH_AUTH_SOCK" /tmp/ssh-agent-$USER-screen else - start_agent; + # Source SSH settings, if applicable. + if [ -f "${SSH_ENV}" ]; then + . ${SSH_ENV} > /dev/null + ps -ef | grep ${SSH_AGENT_PID} | grep ssh-agent$ > /dev/null || { + start_agent; + } + else + start_agent; + fi fi -