SSH#
✓ |
⨯ |
⨯ |
⨯ |
⨯ |
✓ |
✓ |
✓ |
This guide explains how to prepare your SSH server and client for use with the Nitrokey. For configuring PuTTY, see this guide:
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.