- Registriert
- 26.10.05
- Beiträge
- 3.120
Der Anfang ist bereits von hilarious wunderbar an dieser Stelle erklärt worden.
Dort meint er aber auch:
Da ich denke, daß man auf jeden Fall eine Passphrase verwenden sollte, und ich das auch schon seit Jahr & Tag so mache, mnöchte ich hier kurz meine Lösung (die ich auch nur irgendwann mal im Netz gefunden habe) vorstellen.
Dazu wird in die Startdatei des Terminals (.profile bei der bash) folgendes mit aufgenommen:
Wenn man nun das erstemal nach dem Einloggen ein Terminal startet, wird man nach der Passphrase gefragt. Von da ab, während der gesamten "Sitzung" nicht mehr. Passwortfreier Zugang ist dann ab sofort möglich.
Das ganze funktioniert vereinfacht gesagt dadurch, daß der ssh-agent sich die benötigten Daten merkt und dem ssh zur Verfügung stellt.
Dort meint er aber auch:
Wenn Du Deinem Schlüssel eine »Passphrase« verpasst hast, wirst Du allerdings diese jetzt jedesmal eingeben müssen (auch dafür gibt es Automatismen, aber das würde zu weit führen).
Da ich denke, daß man auf jeden Fall eine Passphrase verwenden sollte, und ich das auch schon seit Jahr & Tag so mache, mnöchte ich hier kurz meine Lösung (die ich auch nur irgendwann mal im Netz gefunden habe) vorstellen.
Dazu wird in die Startdatei des Terminals (.profile bei der bash) folgendes mit aufgenommen:
Code:
#!/bin/sh
SSH_AGENT='/usr/bin/ssh-agent -s'
SSH_ADD=/usr/bin/ssh-add
KILL=/bin/kill
SSH_AGENT_INFO=~/.ssh-agent-info
SSH_DIR=~/.ssh
CHMOD=/bin/chmod
TOUCH=/usr/bin/touch
#KEYS='identity id_dsa id_rsa'
ssh_prime () {
$TOUCH $SSH_AGENT_INFO
$CHMOD 600 $SSH_AGENT_INFO
$SSH_AGENT > $SSH_AGENT_INFO
. $SSH_AGENT_INFO
if [ -n "$KEYS" ]
then
for i in $KEYS
do
$SSH_ADD $SSH_DIR/$i
done
else
$SSH_ADD
fi
}
if test -f $SSH_AGENT_INFO
then
. $SSH_AGENT_INFO >/dev/null
if [ -n "$SSH_AGENT_PID" ]
then
if ! ( $KILL -INFO "$SSH_AGENT_PID" 2> /dev/null ) || ! ( [ -S $SSH_AUTH_SOCK ] || [ -p $SSH_AUTH_SOCK ] )
then
echo leftover $SSH_AGENT_INFO
ssh_prime
fi
else
echo wrong $SSH_AGENT_INFO
ssh_prime
fi
else
echo No $SSH_AGENT_INFO
ssh_prime
fi
. $SSH_AGENT_INFO >/dev/null
Wenn man nun das erstemal nach dem Einloggen ein Terminal startet, wird man nach der Passphrase gefragt. Von da ab, während der gesamten "Sitzung" nicht mehr. Passwortfreier Zugang ist dann ab sofort möglich.
Das ganze funktioniert vereinfacht gesagt dadurch, daß der ssh-agent sich die benötigten Daten merkt und dem ssh zur Verfügung stellt.