SSH

Diese Anleitung erklärt, wie Sie Ihren SSH-Server und -Client für die Verwendung mit dem Nitrokey vorbereiten. Um PuTTY zu konfigurieren, siehe diese Anleitung:

Der Nitrokey sollte bereits PGP-Schlüssel installiert haben und der lokale GnuPG-Schlüsselbund sollte die Schlüssel kennen.

Vorbereitung auf dem Host Rechner

  • Stellen Sie sicher, dass ~/.gnupg/gpg.conf ‚use-agent‘ enthält

  • Hinzufügen von SSH-Unterstützung zu gnupg-agent durch Hinzufügen von ‚enable-ssh-support‘ zu ~/.gnupg/gpg-agent.conf

  • Wenn die Datei noch nicht vorhanden ist, können Sie sie einfach erstellen.

  • Fügen Sie den folgenden Code irgendwo in Ihre ~/.bashrc ein (für Fish Shell, siehe hier)

unset SSH_AGENT_PID
if [ "${gnupg_SSH_AUTH_SOCK_by:-0}" -ne $$ ]; then
export SSH_AUTH_SOCK="$(gpgconf --list-dirs agent-ssh-socket)"
fi
  • Starten Sie einfach Ihr System neu oder versuchen Sie pkill gpg-agent und öffnen Sie eine neue Befehlszeile, um sicherzustellen, dass alles richtig eingestellt ist

  • Bei Problemen versuchen Sie bitte gpg2 --card-status bei der ersten Verwendung, um sicherzustellen, dass der gpg-agent gestartet wird

Vorbereitung für den Server

Sie können eine authorized_keys-Datei erzeugen, indem Sie entweder

gpg2 --export-ssh-key keyID >> ~/authorized_keys

wobei

keyID

ist die Unterschlüssel-ID, die für die Authentifizierung auf Ihrem Nitrokey verwendet wird. Der Nitrokey muss dem lokalen GnuPG-Schlüsselbund bereits bekannt sein. Sie können diese Datei nun an die authorized_keys eines entfernten Servers anhängen, und wenn Sie sich per ssh mit dem Server verbinden, werden Sie nach einer Pin statt einer Passphrase gefragt.

Fehlersuche

Wenn Sie immer noch nach einem Passwort gefragt werden, stellen Sie bitte sicher, dass

echo $SSH_AUTH_SOCK

liefert etwas wie ‚/run/user/1000/gnupg/S.gpg-agent.ssh‘ oder ‚/home/username/.gnupg/.S.gpg-agent.ssh‘. Leider gab es in der Vergangenheit einige Änderungen in GnuPG, so dass sich der tatsächliche Inhalt je nach System und GnuPG-Version unterscheiden kann. Auf manchen Systemen können sogar mehrere Ordner in dieser Variable gespeichert sein. Sie müssen den oben angegebenen Code in .bashrc so anpassen, dass die Variable SSH_AUTH_SOCK korrekt ist. Im Zweifel suchen Sie nach ‚SSH_AUTH_SOCK‘ in

man gpg-agent

um den aktuellen Code für Ihre Version/Ihr System zu finden.

Sie können überprüfen, ob Sie ein ‚pinentry‘ Programm über Ihren Paketmanager installiert haben. Eventuell müssen Sie es auch in der gpg-agent.conf <https://wiki.archlinux.org/index.php/GnuPG#pinentry>`__ einstellen. Möglicherweise müssen Sie ` gpg-agent auf die richtige TTY <https://wiki.archlinux.org/index.php/GnuPG#Configure_pinentry_to_use_the_correct_TTY>`__ einstellen.