Handle non-existing local SSH keys without error (=>nop).
authorshort <>
Sat, 6 Aug 2005 23:50:45 +0000 (23:50 +0000)
committershort <>
Sat, 6 Aug 2005 23:50:45 +0000 (23:50 +0000)
bin/ssh-agent-spawn

index bc01a99..0ae9316 100644 (file)
@@ -1,20 +1,23 @@
 #! /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 &&
+for key in $HOME/.ssh/id_dsa;do
+       test -r "$key" || continue
+
+       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 </proc/"$SSH_AGENT_PID"/cmdline sh -c 'echo "$0"') 2>/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
-       if [ "ssh-agent" != "`(xargs -0 </proc/"$SSH_AGENT_PID"/cmdline sh -c 'echo "$0"') 2>/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
-       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