34 lines
805 B
Bash
34 lines
805 B
Bash
|
#!/bin/sh
|
||
|
# source-ssh-agent: Script to source for ssh-agent to work
|
||
|
# From http://mah.everybody.org/docs/ssh
|
||
|
|
||
|
# Check if accidentaly executed instead of sourced:
|
||
|
if echo "$0" | grep -q source-ssh-agent; then
|
||
|
echo "source-ssh-agent: Do not execute directly - source me instead!"
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
SSH_ENV="$HOME/.ssh/environment"
|
||
|
|
||
|
start_agent () {
|
||
|
ssh-agent | sed 's/^echo/#echo/' > "${SSH_ENV}"
|
||
|
chmod 600 "${SSH_ENV}"
|
||
|
. "${SSH_ENV}" > /dev/null
|
||
|
ssh-add
|
||
|
}
|
||
|
|
||
|
if [ -f "${SSH_ENV}" ]; then
|
||
|
. "${SSH_ENV}" > /dev/null
|
||
|
if ps ${SSH_AGENT_PID} | grep ssh-agent$ > /dev/null; then
|
||
|
# Agent already running, but it may be running without identities:
|
||
|
if ssh-add -L 2> /dev/null | grep -q 'no identities'; then
|
||
|
# .. in which case we add them:
|
||
|
ssh-add
|
||
|
fi
|
||
|
else
|
||
|
start_agent;
|
||
|
fi
|
||
|
else
|
||
|
start_agent;
|
||
|
fi
|