mirror of
https://github.com/danhper/fish-ssh-agent.git
synced 2025-10-09 11:51:00 +00:00
When in an SSH session, try to connect to a forwarded agent first. If that fails, only then check if an SSH agent is already running on the machine. This fixes a situation where a .ssh/environment file left behind from a dead agent is checked first, ignoring the forwarded agent and starting a new agent on the machine.
24 lines
478 B
Fish
24 lines
478 B
Fish
function __ssh_agent_is_started -d "check if ssh agent is already started"
|
|
if test -n "$SSH_CONNECTION"
|
|
# This is an SSH session
|
|
ssh-add -l > /dev/null 2>&1
|
|
if test $status -eq 0 -o $status -eq 1
|
|
# An SSH agent was forwarded
|
|
return 0
|
|
end
|
|
end
|
|
|
|
if begin; test -f "$SSH_ENV"; and test -z "$SSH_AGENT_PID"; end
|
|
source $SSH_ENV > /dev/null
|
|
end
|
|
|
|
if test -z "$SSH_AGENT_PID"
|
|
return 1
|
|
end
|
|
|
|
ssh-add -l > /dev/null 2>&1
|
|
if test $status -eq 2
|
|
return 1
|
|
end
|
|
end
|