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 istBei 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.