Created
January 2, 2015 05:08
-
-
Save irgeek/ea676778f6903f63fbaa to your computer and use it in GitHub Desktop.
Shell script (bash) to persist ssh-agent environment variables...
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Bash script to maintain a persistent ssh-agent across multiple | |
# invocations of your shell when the parent process launching them | |
# does not set the necessary environment variables. | |
AGENT_VARS_FILE="${HOME}/.ssh/agent-vars.sh" | |
start_agent() { | |
rm -f ${AGENT_VARS_FILE} | |
touch ${AGENT_VARS_FILE} | |
chmod 600 ${AGENT_VARS_FILE} | |
[[ -s ${AGENT_VARS_FILE} ]] && { echo "Resetting agent file failed. Non-zero length!"; exit 1; } | |
ssh-agent | sed 's/^echo/#echo/' >> "${AGENT_VARS_FILE}" | |
echo "New ssh-agent started - use 'ssh-add' to add keys to it!" | |
} | |
agent_running() { | |
if [[ -n ${SSH_AUTH_SOCK} ]]; then | |
ssh-add -l > /dev/null 2>&1 | |
case $? in | |
0) # Everything looks good | |
return 0 | |
;; | |
1) | |
echo "Looks like ssh-agent is running, but it's locked or has no key loaded" | |
return 0 | |
;; | |
esac | |
fi | |
return 1 | |
} | |
[[ -r ${AGENT_VARS_FILE} ]] && source ${AGENT_VARS_FILE} | |
agent_running || start_agent | |
[[ -r ${AGENT_VARS_FILE} ]] && source ${AGENT_VARS_FILE} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment