1
0
Fork 0
Scripts/start-ssh-agent.sh
2021-06-30 00:36:37 +02:00

23 lines
682 B
Bash
Executable file

#!/bin/bash
# A script to ensure one and only SSH agent is running, especially in Tmux or
# remote sessions. You can add it to your bashrc/zshrc without issues.
# Inspired from: http://rabexc.org/posts/pitfalls-of-ssh-agents
AGENT_CONFIG="$HOME/.ssh-agent"
# First try to list identities.
ssh-add -l &> /dev/null
# If it returned 2, try to load a running agent config.
if [ "$?" = 2 ]; then
test -r $AGENT_CONFIG && eval "$(<$AGENT_CONFIG)" > /dev/null
# Retry.
ssh-add -l &> /dev/null
# If it still does not work, start a new agent.
if [ "$?" = 2 ]; then
(umask 066; ssh-agent > $AGENT_CONFIG)
eval "$(<$AGENT_CONFIG)" > /dev/null
fi
fi