Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Secure Agent
function __agent_is_started -d "check if ssh agent is already started"
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
ps -p $SSH_AGENT_PID > /dev/null
return $status
end
function __agent_start -d "start a new ssh agent"
secure-agent daemon > $SSH_ENV
chmod 600 $SSH_ENV
source $SSH_ENV > /dev/null
true
end
function fish_ssh_agent --description "start ssh-agent if not started yet, or uses already started ssh-agent."
if test -z "$SSH_ENV"
set -xg SSH_ENV $HOME/.ssh/environment
end
if not __agent_is_started
__agent_start
end
end
fish_ssh_agent
function start_ssh_agent() {
secure-agent daemon | head -n 2 >! $ssh_environment
chmod 600 $ssh_environment
source $ssh_environment > /dev/null
}
ssh_environment="$HOME/.ssh/environment"
if [[ -f "$ssh_environment" ]]; then
source $ssh_environment > /dev/null
ps x | grep secure-agent | grep -q $SSH_AGENT_PID || {
start_ssh_agent
}
else
start_ssh_agent
fi
unset ssh_environment
unfunction start_ssh_agent
# To re-enable the built-in ssh-agent.
launchctl unload com.lapanthere.secure-agent
sudo launchctl enable system/com.openssh.ssh-agent
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.