# $Paefchen: home/as/.csh/sshagent.csh,v 1.1 2008/01/07 06:03:02 as Exp $
# CSHRC_RELOAD: NO
# CSHRC_PROMPTONLY: YES
if (! $?CSHRC_MD_SSHAGENT_MOD) then
set _m = a
else if ($CSHRC_MD_SSHAGENT_MOD == 'ask') then
while (1)
echo -n "Soll der SSH-Agent gestartet werden? [A|j|n|h]: "
set _a = $<
if ($_a == '') set _a = a
switch ($_a:l)
case [ajn]:
set _m = $_a:l
break
case [h]:
echo "Hilfe CSHRC-SSH-AGNET:"
echo " j: starten"
echo " n: nicht starten"
echo " h: diese Hilfe"
echo " a: automatisch."
echo " Wird nur gestartet wenn diese Skript"
echo " auf einem localen host laeuft."
breaksw
default
echo "ERROR: Ungueltige Angabe."
endsw
end
unset _a
else if ($CSHRC_MD_SSHAGENT_MOD == 'auto') then
set _m = a
else if ($CSHRC_MD_SSHAGENT_MOD == 'yes') then
set _m = j
else
set _m = n
endif
if ($_m == a) then
set _m = j
if ($?REMOTEHOST) set _m = n
endif
if ($_m == j) then
set _env = ~/.ssh/env.`hostname`
# wenn noch keine ssh-agent variablen abgelegt
# sind, dann muss er gestartet werden
if ( ! -f $_env ) then
set _start = 1
# anderenfalls prueffen ob der Agant mit der PID rennt
else
eval `cat $_env`
set _status = ` \
ps -p $SSH_AGENT_PID | tail -1 | awk '{ print $5 }'`
# wenn nicht, muss er gestartet werden
if ( "$_status" != "ssh-agent" ) set _start = 1
unset _status
endif
# wenn der agent gestartet werden soll
if ( $?_start ) then
echo -n "SSH-Agent starten ... "
ssh-agent -c | head -2 > $_env
chmod 600 $_env
eval `cat $_env`
# key's laden
ssh-add
unset _start _env
# Aliase setzen
alias agent-stop kill -15 $SSH_AGENT_PID
alias agent-stop-all killall ssh-agent
alias agent-lock ssh-add -x
alias agent-ulock ssh-add -X
aliass agent-start ~/.csh/sshagent.csh
endif
endif
unset _m _env _status