chiark / gitweb /
Initial push
[termux-packages] / packages / openssh / source-ssh-agent.sh
1 #!/bin/sh
2 # source-ssh-agent: Script to source for ssh-agent to work
3 # From http://mah.everybody.org/docs/ssh
4
5 # Check if accidentaly executed instead of sourced:
6 if echo "$0" | grep -q source-ssh-agent; then
7         echo "source-ssh-agent: Do not execute directly - source me instead!"
8         exit 1
9 fi
10
11 SSH_ENV="$HOME/.ssh/environment"
12
13 start_agent () {
14         ssh-agent | sed 's/^echo/#echo/' > "${SSH_ENV}"
15         chmod 600 "${SSH_ENV}"
16         . "${SSH_ENV}" > /dev/null
17         ssh-add
18 }
19
20 if [ -f "${SSH_ENV}" ]; then
21         . "${SSH_ENV}" > /dev/null
22         if ps ${SSH_AGENT_PID} | grep ssh-agent$ > /dev/null; then
23                 # Agent already running, but it may be running without identities:
24                 if ssh-add -L 2> /dev/null | grep -q 'no identities'; then
25                         # .. in which case we add them:
26                         ssh-add
27                 fi
28         else
29                 start_agent;
30         fi
31 else
32      start_agent;
33 fi