Fix ssh-agent handling in .bash_profile
This commit is contained in:
parent
d0102c76ac
commit
5f01569d43
1 changed files with 21 additions and 15 deletions
|
@ -35,31 +35,37 @@ unset _PLATFORM
|
|||
|
||||
# SSH agent.
|
||||
hash ssh-add ssh-agent >/dev/null 2>&1 && {
|
||||
if [ ! -z "$SSH_AGENT_PID" ] && [ ! -z "$SSH_AUTH_SOCK" ]; then
|
||||
if [ ! -z "$SSH_AUTH_SOCK" ]; then
|
||||
ssh-add -l >/dev/null 2>&1
|
||||
if (( $? < 2 )); then
|
||||
echo
|
||||
echo "Connected to forwarded ssh-agent at PID $SSH_AGENT_PID."
|
||||
elif [ -z "$SSH_AGENT_PID" ] || [ -z "$SSH_AUTH_SOCK" ]; then
|
||||
echo "Connected to forwarded ssh-agent ($SSH_AGENT_PID)."
|
||||
else
|
||||
echo
|
||||
echo "Problem connecting to forwarded ssh-agent!"
|
||||
false
|
||||
fi
|
||||
else
|
||||
. ~/.ssh/agent 2>/dev/null
|
||||
if [ -z "$SSH_AGENT_PID" ] || ! pgrep -u "$USER" -f "$(hash -t ssh-agent)" | grep "^$SSH_AGENT_PID$" >/dev/null; then
|
||||
ssh-add -l >/dev/null 2>&1
|
||||
if (( $? < 2 )); then
|
||||
echo
|
||||
echo "Connected to local ssh-agent at ($SSH_AGENT_PID)."
|
||||
else
|
||||
if ssh-agent -s | sed -e '/^echo/ d' >~/.ssh/agent; then
|
||||
. ~/.ssh/agent
|
||||
if ! ssh-add -l >/dev/null 2>&1; then
|
||||
ssh-add -l >/dev/null 2>&1
|
||||
if (( $? < 2 )); then
|
||||
alias ssh='ssh-add -l >/dev/null 2>&1 && unalias ssh || { ssh-add && unalias ssh; }; ssh'
|
||||
fi
|
||||
echo
|
||||
echo "Started new local ssh-agent at PID $SSH_AGENT_PID."
|
||||
else
|
||||
echo
|
||||
echo "Failed to start local ssh-agent!"
|
||||
false
|
||||
echo "Problem connecting to local ssh-agent!"
|
||||
fi
|
||||
else
|
||||
echo
|
||||
echo "Connected to local ssh-agent at PID $SSH_AGENT_PID."
|
||||
echo "Failed to start local ssh-agent!"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue