Nitrokey Schlüssel auf weiterem Rechner einrichten
Ausgangspunkt ist ein Nitrokey mit einem installiertem Schlüssel. Dieser Key soll jetzt für die Verwendungen mit SSH auf einem anderen PC eingerichtet werden. Voraussetzung hierfür ist der Import des öffentlichen Schlüssels auf dem neuen Rechner. Diesen öffentlichen Schlüssel habe ich mit folgendem Befehl zuerst von dem Nitrokey exportiert
gpg --card-status | grep 'General key info'
gpg --export-ssh-key "Schlüsselnahme von eben" > id_rsa_nitrokey-1.pub
Diesen öffentlichen Schlüssel kann man z.B. auf einem Webserver hinterlegen. Damit der Import auf dem neuen Rechner einfacher geht ist es sinnvoll die URL des öffentlichen Schlüssels auf dem Nitrokey zu hinterlegen.
gpg --card-edit
> admin
> url
> "URL des keys"
Auf dem Zielrechner dann notwendige Software installieren
sudo apt install scdaemon
und wieder die gpg Konfiguration wie hier beschrieben anpassen.
vi .gnupg/gpg.conf
use-agent
vi ~/.gnupg/gpg-agent.conf
enable-ssh-support
Den öffentlichen Schlüssel besorgen
gpg --card-edit
gpg/card> admin
Admin-Befehle sind erlaubt
gpg/card> fetch
und die bash / zsh rc anpassen
vi ~/.bashrc
unset SSH_AGENT_PID
if [ "${gnupg_SSH_AUTH_SOCK_by:-0}" -ne $$ ]; then
export SSH_AUTH_SOCK="$(gpgconf --list-dirs agent-ssh-socket)"
fi
dann noch den gpg-agent neustarten
pkill gpg-agent
Dann sollte in einem neuen Terminalfenster nach bei einem Zugriff über ssh wieder die PIN des Nitrokeys abgefragt werden.