X-Git-Url: https://git.distorted.org.uk/~mdw/termux-packages/blobdiff_plain/798619b91c91405f847b0e48137239f218a4cf15..59f0d218a6ff34c80cf898f6d7ac62555ba8eb11:/packages/openssh/source-ssh-agent.sh diff --git a/packages/openssh/source-ssh-agent.sh b/packages/openssh/source-ssh-agent.sh new file mode 100755 index 00000000..96768789 --- /dev/null +++ b/packages/openssh/source-ssh-agent.sh @@ -0,0 +1,33 @@ +#!/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