#! /sbin/nologin # $Id$ agenteval=/tmp/.$USER.ssh-agent.eval if lockfile -1 -r 3 -l 10 -s 1 $agenteval.lock;then test -f $agenteval -a -O $agenteval -a -G $agenteval && # ">/dev/null" to prevent: echo Agent pid 31074; source $agenteval >/dev/null if [ "ssh-agent" != "`(xargs -0 /dev/null `" ];then rm -f $agenteval (test ! -e $agenteval && ssh-agent -s >$agenteval) || echo >&2 'Failing ssh-agent!' # ">/dev/null" to prevent: echo Agent pid 31074; source $agenteval >/dev/null fi rm -f $agenteval.lock fi for key in $HOME/.ssh/id_dsa;do # Prevent gdm(8) lockups on non-interactive consoles. tty -s || continue (ssh-add -l|grep -qw "$key") && continue if lockfile -! -1 -r 0 $agenteval.input.lock 2>/dev/null;then echo >&2 -n "Locking: $agenteval.input.lock ... " lockfile -1 -r -1 $agenteval.input.lock echo >&2 "locked" fi # Recheck identity existence after the lock acquire if ssh-add -l|grep -qw "$key";then echo >&2 "Identity $key already appended in the meantime." else # "2>/dev/null" to prevent: Identity added: .ssh/id_dsa (.ssh/id_dsa) ssh-add "$key" 2>/dev/null fi rm -f $agenteval.input.lock echo >&2 "$agenteval.input.lock unlocked." done unset agenteval