#!/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