DSIW

Alles was interessant ist... (Linux, Programmierung, Datenschutz, Medien, uvm.)

Komfortabler SSH-Agent mit keychain

| Comments

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.

Weitere Informationen

Comments