(Resident)Keypair für SSH mit Yubikey erstellen

Die Anleitung bezieht sich auf ein Ubuntu 22.04 bzw. wurde mit dieser getestet. Wie immer ohne Gewähr. Des weiteren: Kein Backup, kein Mitleid!

Es sollte vorher das PPA von Yubico auf dem System installiert sein:

sudo add-apt-repository ppa:yubico/stable && sudo apt-get update

danach sollte der Yubikey-Manager(CLI) installiert werden:

sudo apt install yubikey-manager

und ebenso (empfehlenswert)

sudo apt install libpam-yubico

sudo apt install libpam-u2f

sudo apt install yubikey-manager-qt

sudo apt install yubioath-desktop

Nun mit dem Yubikeymanager (yubikey-manager-qt) einen Fido-PIN für den Yubikey festlegen falls noch nicht geschehen

Jetzt in ein Verzeichnis wechseln in der die Keys abgelegt werden sollen: Zum Bespiel

cd ~/Downloads/Yubikey-ssh

Nun erstellen wir uns den Key. Beachtet bitte dass dies ein Beispiel ist. Ersetzt "yubikeyname" und "ZWECKDESKEYS"! Falls ihr euer Keyfile noch zusätzlich mit einem Passwort schützen möchtet schreibt dies bitte bei -N 'PASSWORT' hinein.

ssh-keygen -t ed25519-sk -N '' -f yubikeyname -O resident -O application=ssh:ZWECKDESKEYS

Das System frägt nach der PIN des Yubikeys. Ebenso müsst Ihr diesen einmal berühren wenn er blinkt.

Jetzt sollten zwei Dateien erzeugt worden sein. In meinem Beispiel lauten diese yubikeyname und yubikeyname.pub

Überprüfen ob der Key auf dem Yubikey gespeichert wurde:

ykman fido credentials list

Bereit um den .pub Key auf den Remoteserver zu pushen:

Natürlich nicht vergessen die Daten in dem Befehl abzuändern... 

ssh-copy-id -i yubikeyname.pub root@123.123.123.123

Sollte der Key versehentlich gelöscht oder verloren gegangen sein kann man diesen nun problemlos neu generieren lassen: 

ssh-keygen -K

Der Key wurde wieder erzeugt, allerdings mit einem anderen Dateinamen.