diff --git a/modules/ssh/init.zsh b/modules/ssh/init.zsh index 320f7635..daa4372f 100644 --- a/modules/ssh/init.zsh +++ b/modules/ssh/init.zsh @@ -21,10 +21,13 @@ _ssh_agent_sock="$TMPDIR/ssh-agent.sock" # Start ssh-agent if not started. if [[ ! -S "$SSH_AUTH_SOCK" ]]; then - eval "$(ssh-agent | sed '/^echo /d' | tee "$_ssh_agent_env")" -else # Export environment variables. source "$_ssh_agent_env" 2> /dev/null + + # Start ssh-agent if not started. + if ! ps -U "$USER" -o pid,ucomm | grep -q "${SSH_AGENT_PID} ssh-agent"; then + eval "$(ssh-agent | sed '/^echo /d' | tee "$_ssh_agent_env")" + fi fi # Create a persistent SSH authentication socket.