Skip to content

Instantly share code, notes, and snippets.

@hinell
Created March 24, 2017 16:16
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save hinell/c69cf78b0717c66e7ab457cacde21185 to your computer and use it in GitHub Desktop.
Save hinell/c69cf78b0717c66e7ab457cacde21185 to your computer and use it in GitHub Desktop.
Script that starts ssh-agent program
export PATH=/opt/openssh/bin:${PATH}
env=~/.ssh/agent.env
agent_is_running() {
if [ "$SSH_AUTH_SOCK" ]; then
# ssh-add returns:
# 0 = agent running, has keys
# 1 = agent running, no keys
# 2 = agent not running
ssh-add -l >/dev/null 2>&1 || [ $? -eq 1 ]
else
false
fi
}
agent_has_keys() {
ssh-add -l >/dev/null 2>&1
}
agent_load_env() {
. "$env" >/dev/null
}
agent_start() {
(umask 077; ssh-agent >"$env")
. "$env" >/dev/null
}
if ! agent_is_running; then
agent_load_env
fi
if ! agent_is_running; then
agent_start
ssh-add
elif ! agent_has_keys; then
ssh-add
fi
unset env
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment