System-wide user-specific spawning of ssh-agent(1).
authorshort <>
Sun, 26 Dec 2004 19:24:52 +0000 (19:24 +0000)
committershort <>
Sun, 26 Dec 2004 19:24:52 +0000 (19:24 +0000)
bin/ssh-agent-spawn [new file with mode: 0644]

diff --git a/bin/ssh-agent-spawn b/bin/ssh-agent-spawn
new file mode 100644 (file)
index 0000000..57e2457
--- /dev/null
@@ -0,0 +1,16 @@
+#! /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 &&
+                       source $agenteval 2>/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!'
+               source $agenteval
+       fi
+       rm -f $agenteval.lock
+       ssh-add ~/.ssh/id_dsa
+fi
+unset agenteval