31 lines
733 B
Bash
31 lines
733 B
Bash
SSH_ENV="$HOME/.ssh/environment"
|
|
KEY="$HOME/.ssh/id_rsa"
|
|
|
|
function start_agent () {
|
|
ssh-agent -s | sed 's/^echo/#echo/' > "$SSH_ENV"
|
|
chmod 600 "$SSH_ENV"
|
|
. "$SSH_ENV" > /dev/null
|
|
}
|
|
|
|
function add_identities () {
|
|
ssh-add -l | grep "The agent has no identities" > /dev/null
|
|
if [ $? -eq 0 ]; then
|
|
ssh-add $KEY &> /dev/null
|
|
fi
|
|
}
|
|
|
|
function is_ssh_agent_pid_valid () {
|
|
ps -ef | grep $1 | grep -v grep | grep ssh-agent > /dev/null
|
|
}
|
|
|
|
if [ -n "$SSH_AGENT_PID" ] && is_ssh_agent_pid_valid $SSH_AGENT_PID; then
|
|
add_identities
|
|
else
|
|
if [ -f "$SSH_ENV" ]; then
|
|
. "$SSH_ENV" > /dev/null
|
|
fi
|
|
if ! is_ssh_agent_pid_valid $SSH_AGENT_PID; then
|
|
start_agent
|
|
fi
|
|
add_identities
|
|
fi
|