Ich hatte schon frühere Artikel bzgl. dem Einrichten eines SSH-Agents und dem Löschen von Keys des SSH-Agents geschrieben.
Heute möchte ich noch eine Variante vorstellen, die einen anderen SSH-Agenten nutzt. Ich empfehle nun diese Variante, da die andere mit dem GPG-Agenten nicht zuverlässig funktioniert hatte. Zum einen konnten keine Schlüssel entfernt werden, zum anderen konnte ich zum Schluss keine Schlüssel mehr hinzufügen.
Diese Variante nutzt das Paket keychain
. Dieses Paket ist ein Wrapper um den eigentlichen SSH-Agenten. Das Problem ist
nämlich, dass der SSH-Agent bei jeder neuen Shell neu gestartet wird. Leider wird der vorherige gestartete Agent nicht
genutzt, da die Shell keine Informationen über diesen hat.
Jetzt kommt der Wrapper ins Spiel. Dieser hat Informationen über den gestarteten Agenten und kann somit diesen laden.
Das hat komfortable Konsequenzen. Der Nutzer muss nicht bei jeder neuen Shell das Passwort zum Entsperren des Keys
eingeben. Dies tut er einmal nach dem Start des Rechners.
Installation
Mit dem folgenden Befehl wird das Paket unter Arch Linux installiert:
# pacman -S keychain
Einrichtung
Nach dem Installieren muss das Programm geladen werden. Hier gibt es unterschiedliche Möglichkeiten.
Einmaliges Laden beim Booten
sh /etc/profile.d/keychain.sh
eval $(keychain --eval --nogui -Q -q id_rsa)
oder
sh /etc/profile.d/keychain.sh
/usr/bin/keychain -Q -q --nogui ~/.ssh/id_dsa
[[ -f $HOME/.keychain/$HOSTNAME-sh ]] && source $HOME/.keychain/$HOSTNAME-sh
Da durch die Installation des Pakets auch ein Ordner ~/.keychain
erstellt wurde, kann man sich dort die
unterschiedlichen Skripte ausführen lassen. Da ich auf einer normalen Shell (bash, zsh) arbeite, würde ich den oben
stehenden Inhalt nicht mehr anpassen.
Ich habe die erste Variante gewählt, da diese für mich funktioniert. Anschließend wurde noch der Ordner
~/.keychain
gelöscht, da ich diesen nicht brauche.
Laden bei jeder Shell-Sitzung
Desweiteren habe ich noch den folgenden Inhalt meiner ~/.zshrc
hinzugefügt:
sh
eval $(keychain --eval --nogui --quick --quiet --agents ssh id_rsa)
Hier bin ich mir nicht sicher, ob dies überhaupt nötig ist, da keychain
schon einmal beim Booten ausgeführt wurde.
Ich hoffe, dass nun keychain
zuverlässig funktioniert. In den ersten Tests funktionierte das Hinzufügen und das
Löschen von Schlüsseln einbahnfrei.