BlogBlog ÜbersichtjailscriptportsoptFreeBSDLinksThermoskanne

SSH Schlüssel mit ssh-agent verwalten

Mit Hilfe eines Public Keys kann man sich ohne eine Passworteingabe an einem Rechner anmelden. Trotzdem sollte der Schlüssel selbst mit einem Passwort versehen werden, so dass bei jeder SSH Verbindung ein Passwort eingegeben werden muss. Mit Hilfe von ssh-agent kann der Schlüssel gespeichert werden, so dass das Passwort nur einmal eingegeben werden muss. Dazu muss zuerst eine Shell mit ssh-agent gestartet werden, in welcher die Schlüssel ohne Passwort verwendet werden können:

# ssh-agent tcsh

Danach können die Schlüssel mit Hilfe von ssh-add hinzugefügt werden. ssh-add sucht dabei nach vorhandenen Schlüsseln und fragt nach den Schlüsselpasswort:

#  ssh-add 
Enter passphrase for /home/beat/.ssh/id_rsa: 
Identity added: /home/beat/.ssh/id_rsa (/home/beat/.ssh/id_rsa)

Nun kann man sich ohne weitere Passworteingabe an einem Rechner anmelden:

# ssh <Benutzer>@<Rechner>

Mit Hilfe der -l Option können alle gespeicherten Schlüssel angezeigt werden:

# ssh-add -l
2048 4d:3a:53:64:46:69:51:61:4b:62:93:66:77:ff:42:88 /home/beat/.ssh/id_rsa (RSA)

Ruft man ssh-add mit der -x Option auf, wird man nach einem Passwort gefragt und der ssh-agent wird gesperrt:

# ssh-add -x
Enter lock password: 
Again: 
Agent locked.

Ist der Agent gesperrt und man versucht sich wieder mit SSH zu verbinden, wird man wieder nach dem Passwort gefragt:

# ssh <Benutzer>@<Rechner>
Enter passphrase for key '/home/beat/.ssh/id_rsa':

Mit Hilfe der -X Option kann der Agent wieder entsperrt werden:

# ssh-add -X
Enter lock password: 
Agent unlocked.

Verwendet man den Schlüssel nicht mehr, so kann der ssh-agent mit Hilfe der -k Option beendet werden:

# ssh-agent -k
unsetenv SSH_AUTH_SOCK;
unsetenv SSH_AGENT_PID;
echo Agent pid 7747 killed;

Sowohl auf FreeBSD als auch auf OpenBSD ist ssh-agent und ssh-add im Basissystem vorhanden. Mehr Informationen findet man in den Manpages ssh-agent(1) und ssh-add(1).

Comments (2)  Permalink