dotfiles/dot_config/zsh/sshagent.zsh
2021-07-23 15:29:03 +02:00

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