YubiKeys mit Fedora verwenden

Das Fedora-Dokumentationsteam, Alexander Wellbrock, chris-r Version F43 Last review: 2026-02-28

Was ist ein YubiKey?

Ein YubiKey ist ein kleines, USB- und NFC-basiertes Gerät, ein sogenannter Hardware-Sicherheitstoken, mit Modulen für zahlreiche sicherheitsrelevante Anwendungsfälle. Er erzeugt Einmalpasswörter (OTPs), speichert private Schlüssel und implementiert verschiedene Authentifizierungsprotokolle. YubiKeys werden von der Firma Yubico hergestellt und vertrieben.

Weitere Informationen zu den Funktionen von YubiKey finden Sie auf deren Produktseite.

Wie erhalte ich einen YubiKey?

Sie können einen YubiKey auf der Yubico-Website erwerben.

Erwägen Sie die Anschaffung eines Ersatz-YubiKey

Sobald Sie mit Sicherheitstoken arbeiten, müssen Sie das Risiko berücksichtigen, sich von Konten auszusperren, die mit diesen Token verknüpft sind. Da Hardware-Sicherheitstoken einzigartig und extrem schwer zu kopieren sind, können Sie nicht einfach eine Sicherung erstellen wie bei Software-Tresoren wie KeePass oder AndOTP. Daher sollten Sie alle Registrierungen, die Sie mit Ihrem primären Schlüssel vornehmen, sofort mit einem zweiten Sicherungsschlüssel durchführen, den Sie an einem sicheren Ort wie einem Tresor aufbewahren oder zumindest immer zu Hause lassen.

In der Praxis bedeutet dies, dass Sie sowohl Hardware-Token bei Ihrem Linux- als auch bei Ihrem Web-Konto registrieren, zweimal private Schlüssel erzeugen und beide öffentlichen Schlüssel z. B. bei GitHub konfigurieren müssen.

Speicherbeschränkungen

Für einige Funktionen werden private Schlüssel und andere Geheimnisse auf dem YubiKey gespeichert. Jede Funktion hat ihren eigenen Speicherplatz eine maximale Anzahl von Anmeldeinformationsplätzen:

  • OTP – Unbegrenzt, da nur ein Geheimnis pro Schlüssel erforderlich ist

  • FIDO U2F – Unbegrenzt, da nur ein Geheimnis pro Schlüssel erforderlich ist

  • FIDO2 - 25 Anmeldeinformationsplätze

  • OATH - 32 Anmeldeinformationsplätze

  • PIV – 24 x509-Zertifikate und ihre jeweiligen privaten Schlüssel

  • OpenPGP – 3 Schlüssel; je einer für Verschlüsselung, Signierung und Authentifizierung

Verwendung eines YubiKey zur Authentifizierung an einem Rechner, auf dem Fedora läuft

Die lokale Systemauthentifizierung verwendet Pluggable Authentication Modules (PAM). Sie haben zwei Optionen: pam_yubico und pam_u2f. Ersteres ist für YubiKeys ohne FIDO2/U2F erforderlich. Ob Ihr Schlüssel den FIDO2-Standard unterstützt, hängt von der Firmware und dem Hardwaremodell ab.

Die Einrichtung geschieht wie folgt: Installieren Sie das PAM-Modul, registrieren Sie einen YubiKey mit Ihrem Benutzerkonto, erstellen Sie eine Basiskonfiguration für eine der beiden Authentifizierungsoptionen und wählen Sie dann die PAM-Konfiguration aus, mit der Sie den YubiKey verwenden möchten.

Abhängigkeiten

Die für beide PAM-Module erforderlichen Pakete sind in den offiziellen Paketquellen verfügbar.

=== Beachten Sie, dass sich die beiden PAM-Module darin unterscheiden, dass Sie bei pam_yubico Ihren YubiKey nicht berühren müssen. Es genügt, wenn der Schlüssel in Ihr Gerät gesteckt ist. Bei pam_u2f müssen Sie Ihren Schlüssel jedes Mal berühren, wenn eine Authentifizierung erforderlich ist. ===

Für pam_yubico

Installieren Sie das PAM-Yubico-Modul aus den offiziellen Paketquellen:

$ sudo dnf install pam_yubico

Für pam_u2f

Installieren Sie das PAM u2f-Modul und das Befehlszeilenwerkzeug aus den offiziellen Paketquellen:

$ sudo dnf install pam-u2f pamu2fcfg

Basiskonfigurationsdateien

Für pam_yubico

Es gibt zwei Möglichkeiten, das YubiKey PAM-Modul zur Benutzerauthentifizierung zu konfigurieren: entweder über die YubiCloud oder per Challenge-Response-Verfahren. Die YubiCloud ist die Standardmethode, benötigt jedoch die Cloud von Yubico zur Validierung Ihrer Einmalpasswörter und erfordert daher einen ständigen Internetzugang.

Erstellen Sie zwei Basiskonfigurationsdateien in /etc/pam.d/yubikey-required und yubikey-sufficient.

Für YubiCloud verwenden Sie Folgendes:

#%PAM-1.0
auth       required     pam_yubico.so id=[Ihre API-Client-ID] key=[Ihr API-Client-Schlüssel]
#%PAM-1.0
auth       sufficient     pam_yubico.so id=[Ihre API-Client-ID] key=[Ihr API-Client-Schlüssel]

Beachten Sie, dass der Schlüssel optional ist, aber ohne ihn keine TLS-Verifizierung stattfindet, wodurch das System standardmäßig anfällig für Man-in-the-Middle-Angriffe ist. Sie erhalten einen Schlüssel bei Yubico.

Beachten Sie, dass die Online-Authentifizierungsmethode nicht funktioniert, wenn das Gerät offline ist und keinen Zugriff auf die YubiCloud hat.

Wenn SELinux im Durchsetzungsmodus (Standardmodus) läuft, sollten Sie zuerst die boolesche Variable allow_ypbind aktivieren, da pam_yubico eine Verbindung zu den Online-Authentifizierungsservern von Yubico herstellen können muss.

$ sudo setsebool -P allow_ypbind=1

Für das Challenge-Response-Verfahren verwenden Sie Folgendes:

#%PAM-1.0
auth       required     pam_yubico.so mode=challenge-response
#%PAM-1.0
auth       sufficient     pam_yubico.so mode=challenge-response

Sie können die Debug-Option am Ende dieser Zeilen direkt nach der Modus-Option hinzufügen, um in journald Informationen zur Fehlerbehebung zu erhalten.

Wenn Sie beide Methoden für unterschiedliche Anwendungsfälle nutzen möchten, erstellen Sie einfach die entsprechenden Konfigurationsdateien und verwenden Sie diese wie im nächsten Abschnitt beschrieben als Include-Dateien.

Für pam_u2f

pam_u2f mit authselect aktivieren (empfohlen)

Authselect ist die empfohlene Methode, um pam_u2f in die PAM-Konfiguration von Fedora zu integrieren. Dadurch wird die U2F-Authentifizierung im PAM-Stack auf eine Weise ermöglicht, die über alle Dienste und Systemaktualisierungen hinweg konsistent ist.

Bevor Sie das Funktionsmerkmal aktivieren, stellen Sie sicher, dass Sie Ihren Sicherheitsschlüssel registriert haben (siehe Abschnitt YubiKey(s) mit Ihrem/Ihren lokalen Konto/Konten registrieren), damit pam_u2f Ihre Datei u2f_keys finden kann.

Halten Sie eine bestehende Root-Shell oder eine zusätzliche Anmeldesitzung geöffnet, während Sie die Authentifizierungseinstellungen ändern, und testen Sie die Änderungen, bevor Sie sich abmelden. Eine Fehlkonfiguration kann Sie vom System aussperren.

Überprüfen Sie das aktuelle authselect-Profil:

$ sudo authselect current

Aktivieren Sie die U2F-Unterstützung für das aktuelle Profil, indem Sie das Funktionsmerkmal with-pam-u2f hinzufügen. Verwenden Sie dieselbe Profil-ID, die von authselect current angezeigt wird. Beispiel:

$ sudo authselect select sssd with-pam-u2f

oder:

$ sudo authselect select local with-pam-u2f

Wenden Sie die Änderungen an (falls erforderlich):

$ sudo authselect apply-changes

Testen Sie die Authentifizierung in einer neuen Terminal-Sitzung (z. B. mit sudo), bevor Sie sich abmelden:

$ sudo -k
$ sudo true
Fortgeschritten: Manuelle PAM-Konfiguration für pam_u2f (nicht empfohlen)

Manuelle Änderungen an PAM-Konfigurationsdateien können zu Inkonsistenzen führen oder Benutzer sogar vom System aussperren. Authselect verwaltet diese Konfigurationen mit Hilfe vordefinierter Profile und trägt zur Kompatibilität bei Systemaktualisierungen bei.

Erstellen Sie zwei Basiskonfigurationsdateien in /etc/pam.d/u2f-required und u2f-sufficient.

Die Dateien /etc/pam.d/u2f-required und /etc/pam.d/u2f-sufficient sind PAM-Include-Dateien. Ihre Erstellung allein aktiviert die U2F-Authentifizierung noch nicht.

Um sie tatsächlich nutzen zu können, müssen Sie eine dieser Dateien in die PAM-Konfiguration des gewünschten Dienstes (z. B. login, sudo, sshd, gdm/sddm) einbinden, wie im nächsten Abschnitt beschrieben.

#%PAM-1.0
auth       required     pam_u2f.so
#%PAM-1.0
auth       sufficient     pam_u2f.so

Sie können die Debug-Option am Ende dieser Zeilen direkt nach der Modus-Option hinzufügen, um in journald Informationen zur Fehlerbehebung zu erhalten.

YubiKey(s) mit Ihrem/Ihren lokalen Konto/Konten registrieren

Für pam_yubico

Wenn Sie die Online-Methode von YubiCloud verwenden, benötigen Sie die ID Ihres YubiKey. Geben Sie dazu einfach den Schlüssel ein und erhalten Sie einen OTP-Code durch kurzes Drücken der Taste. Extrahieren Sie die ersten 12 Zeichen – das ist Ihre Schlüssel-ID.

cccccbcgebif | bclbtjihhbfbduejkuhgvhkehnicrfdj

Erstellen Sie eine Konfigurationsdatei ~/.yubico/authorized_yubikeys mit Ihrem Benutzerkonto, gefolgt von durch Doppelpunkte getrennten Schlüssel-IDs.

fedora-user:cccccbcgebif[:<noch-eine-Schlüssel-ID>]

Alternativ können Sie Challenge-Response in Slot 2 aktivieren und sich mit Ihrem Benutzerkonto registrieren. Der erste Befehl (ykman) kann übersprungen werden, wenn Sie bereits eine Challenge-Response-Anmeldeinformation in Slot 2 Ihres YubiKey gespeichert haben (überprüfen Sie dies mit „ykman otp info“). Wiederholen Sie beide Schritte oder nur den letzten, falls Sie einen Backup-Schlüssel besitzen (dringend empfohlen).

$ ykman otp chalresp --generate --touch 2
$ ykpamcfg -2
Stored initial challenge and expected response in '/home/<Benutzername>/.yubico/challenge-1...5'.

Oder für jeden anderen Systembenutzer, der sudo verwendet.

$ sudo -u ein_Benutzer ykpamcfg -2

Für pam_u2f

Verwenden Sie das Werkzeug pamu2fcfg, um eine Konfigurationszeile abzurufen, die in die Datei ~/.config/Yubico/u2f_keys eingefügt wird. Diese Konfigurationszeile besteht aus einem Benutzernamen und einem durch einen Doppelpunkt getrennten Teil, der einem Schlüssel zugeordnet ist.

fedora-user:owBYtPIH2yzjlSQaRrVcxB...Pg==,es256,+presence

Falls Ihr Schlüssel PIN-geschützt ist, werden Sie gebeten, für diese Aktion die PIN einzugeben.

Stecken Sie Ihren Schlüssel ein und führen Sie Folgendes aus:

$ mkdir -p ~/.config/Yubico
$ pamu2fcfg > ~/.config/Yubico/u2f_keys

Falls Sie einen Backup-Schlüssel besitzen, fügen Sie diesen mit der Option --nouser hinzu und hängen Sie ihn an die vorhandene Schlüsselzeile an (die gesamte Ausgabe sollte in derselben Zeile erfolgen.)

Stecken Sie Ihren Sicherungsschlüssel ein und führen Sie Folgendes aus:

$ pamu2fcfg -n >> ~/.config/Yubico/u2f_keys

Konfiguration der gewünschten PAM-Module

Konfigurieren Sie PAM anschließend so, dass ein YubiKey als Authentifizierungsmittel akzeptiert wird. Es gibt zahlreiche Optionen in /etc/pam.d, um einen YubiKey zu ändern und hinzuzufügen, aber die häufigsten Anwendungsfälle sind:

  • /etc/pam.d/login

  • /etc/pam.d/gdm

  • /etc/pam.d/sudo

  • /etc/pam.d/sshd

Konfiguration der gewünschten PAM-Module

Konfigurieren Sie PAM anschließend so, dass ein YubiKey als Authentifizierungsmittel akzeptiert wird. Es gibt zahlreiche Optionen in /etc/pam.d, um einen YubiKey zu ändern und hinzuzufügen, aber die häufigsten Anwendungsfälle sind:

  • /etc/pam.d/login

  • /etc/pam.d/gdm

  • /etc/pam.d/sudo

  • /etc/pam.d/sshd

Fügen Sie in einer PAM-Konfigurationsdatei die include-Zeile entweder vor oder nach der vorhandenen system-auth-Zeile hinzu, je nachdem, ob Sie eine -sufficient- oder -required-Include-Datei verwenden:

  • Wenn Sie ein -sufficient-Include verwenden, fügen Sie es *vor auth substack system-auth (oder auth include system-auth) ein.

  • Wenn Sie ein -required-Include verwenden, fügen Sie es *nach dieser Zeile ein.

Der Name der Include-Datei hängt davon ab, welches PAM-Modul Sie zuvor konfiguriert haben:

  • Für pam_yubico verwenden Sie yubikey-sufficient oder yubikey-required

  • Für pam_u2f (manuelle PAM-Konfiguration) verwenden Sie u2f-sufficient oder u2f-required

Wenn Sie pam_u2f über authselect aktiviert haben (empfohlen), müssen Sie normalerweise keine einzelnen Dateien unter /etc/pam.d/* manuell bearbeiten.

Beispiele:

auth include yubikey-sufficient
auth include u2f-sufficient

Das folgende Beispiel legt ein YubiKey-OTP (pam_yubico) als ausreichenden („sufficient“) Faktor für die Terminalanmeldung fest. Dies bedeutet, dass ein YubiKey allein ausreicht, um einen Benutzer bei der Terminalanmeldung zu authentifizieren.

Öffnen Sie /etc/pam.d/login mit dem Editor Ihrer Wahl. Suchen Sie die Zeile mit dem Inhalt„auth substack system-auth“. Fügen Sie darüber Folgendes ein:

auth include yubikey-sufficient

Das Ergebnis sieht in etwa so aus:

#%PAM-1.0
auth       include      yubikey-sufficient
auth       substack     system-auth
auth       include      postlogin
account    required     pam_nologin.so
account    include      system-auth
password   include      system-auth
# pam_selinux.so close sollte die erste Sitzungsregel sein
session    required     pam_selinux.so close
session    required     pam_loginuid.so
# pam_selinux.so open sollte nur von Sitzungen gefolgt werden, die im Benutzerkontext ausgeführt werden sollen
session    required     pam_selinux.so open
session    required     pam_namespace.so
session    optional     pam_keyinit.so force revoke
session    include      system-auth
session    include      postlogin
-session   optional     pam_ck_connector.so

Wenn Sie das nächste Mal eine Konsole (lokal, nicht über SSH) öffnen und sich anmelden möchten, erhalten Sie die Eingabeaufforderung YubiKey for '<Benutzer>': aufgefordert. Tippen Sie auf Ihren YubiKey, um ein Einmalpasswort (OTP) einzugeben. Anschließend werden Sie ohne Passworteingabe angemeldet.

Wenn Sie die Option „yubikey-required“ verwenden, testen Sie diese unbedingt gründlich in einer anderen Sitzung, ohne Ihre aktuelle Sitzung zu schließen, um zu vermeiden, dass Sie sich selbst aus dem System aussperren.

Um einen YubiKey nicht nur für die Terminalanmeldung, sondern auch für lokale sshd-Server, sudo- oder GDM-Anmeldungen zu verwenden, fügen Sie die entsprechende Authentifizierungs-Include-Anweisung zu einer der anderen Konfigurationsdateien in /etc/pam.d hinzu.

Anpassen eines YubiKey mit Fedora

Ein YubiKey ist standardmäßig für Yubico OTP vorkonfiguriert, verwendet aber ansonsten für alle Funktionen Standard-PINs, die Sie vor der ersten Verwendung wahrscheinlich ändern möchten. In den offiziellen Paketquellen finden Sie Software zur Anpassung des YubiKey.

Es gibt im Wesentlichen zwei Werkzeuge, die zusammen mit ihren jeweiligen GUI-Varianten verwendet werden: „yubikey-manager“ und „ykpersonalize“. Ersteres ist neuer, bietet aber weniger Optionen als Letzteres. Um alle verfügbaren Optionen nutzen zu können, installieren Sie beide.

$ sudo dnf install ykpers

Für diesen Befehl gibt es eine grafische Benutzeroberfläche:

$ sudo dnf install yubikey-personalization-gui

Es gibt ein neueres, einfacheres Werkzeug namens ykman:

$ sudo dnf install yubikey-manager

YubiKey Manager hat auch eine grafische Benutzeroberfläche:

$ sudo dnf install yubikey-manager-qt

Schreiben eines neuen statischen Passworts in den zweiten Slot des Schlüssels

Neuere YubiKeys (Version 2 und neuer) können zwei separate Konfigurationen speichern. Die erste wird üblicherweise für Einmalpasswörter (OTP) verwendet, die zweite für ein starkes, statisches Passwort. Wird die Taste kurz (bis zu 1,5 Sekunden) gedrückt, wird die erste Konfiguration aktiviert. Wird die Taste länger (2,5 bis 5 Sekunden) gedrückt, wird die zweite Konfiguration aktiviert.

Schreiben Sie einen statischen Schlüssel mittels ykman otp static.

$ ykman otp static 2 cbdefghijklnrtuv

Ein ausführlicheres Beispiel: Schreiben Sie einen neuen statischen Schlüssel in den zweiten Konfigurationsslot unter Verwendung eines spezifischen AES-Schlüssels.

$ ykpersonalize -2 -o append-cr -a 123456deadcafebeef65432112345678 -o -man-update

Dies schreibt einen statischen Schlüssel auf den YubiKey basierend auf dem mit der Option -a angegebenen 32-Byte-AES-Schlüssel. Die Option -2 legt den zweiten Slot als Ziel fest. Die beiden anderen Optionen sind Geschmackssache. Die Option append-cr fügt einen Zeilenumbruch als letztes Zeichen des Schlüssels hinzu. Dadurch entfällt das Drücken der Eingabetaste. Die Option -man-update deaktiviert die einfache Aktualisierung des statischen Schlüssels auf dem YubiKey. Durch Aktivieren dieser Option kann das statische Passwort ohne Verwendung von ykpersonalize geändert werden.

Schreiben eines neuen AES-Schlüssels in den ersten Slot des Schlüssels

Slot 1 ist insofern besonders, als er bereits in YubiCloud hochgeladene Werkszugangsdaten enthält. Das Löschen und Neuerstellen eines Yubico-OTP-Schlüssels und dessen anschließendes Hochladen in YubiCloud kennzeichnet diesen Schlüssel, was Konsequenzen hat: Dienstanbieter könnten einem solchen Schlüssel nicht mehr vertrauen, und Yubico könnte diese Schlüssel jederzeit und aus praktisch jedem beliebigen Grund löschen.

Um eine neue Konfiguration in den ersten Slot des Schlüssels zu schreiben, müssen wir weitere Optionen angeben. Wenn Sie Ihren Schlüssel zu Yubico hochladen möchten, um sich an deren Servern zu authentifizieren, merken Sie sich die unten verwendeten Werte. Sie benötigen sie später.

$ ykpersonalize -1 -o fixed=vvhhhrhkhgidic -o uid=deadbeefcafe -a 123456deadcfaebeef65432112345678 -o append-cr

Die Option -1 weist ykpersonalize an, die erste Konfiguration zu verwenden. Die Option „fixed“ gibt die öffentliche ID des YubiKey an. Diese wird später beim Hochladen als „Präfix“ bezeichnet. Der hier verwendete Wert muss mit „ff“ in Hexadezimaldarstellung oder „vv“ in Modhex beginnen (siehe unten). Yubico erzwingt dies beim Hochladen des Schlüssels auf die Server. Der Wert für die Option „fixed“ darf maximal 16 Zeichen lang sein.

Im Rahmen des OTP können Sie eine interne Kennung für Ihren Schlüssel festlegen. Dies geschieht mit der Option „uid“. Der Wert liegt im Klartext-Hexadezimalformat vor, nicht im Modhex-Format, und ist exakt 12 Zeichen lang.

Die Option -a ist wiederum der 32-Byte-AES-Schlüssel, und append-cr fügt einen Wagenrücklauf als letztes Zeichen an meinen Schlüssel an.

Wenn Sie die Eingabetaste drücken, zeigt Ihnen das Programm ykpersonalize Ihre Optionen an und bittet um Bestätigung, bevor es fortfährt:

Firmware version 2.1.1 Touch level 1795 Program sequence 3 Configuration data to be written to key configuration 1:

fixed: m:vvhhhrhkhgidic uid: h:deadbeefcafe key: h:123456deadcfaebeef65432112345678 acc_code: h:000000000000 ticket_flags: APPEND_CR config_flags:

Commit? (y/n) [n]:

Nach dem Drücken von „y“ können Sie mit Ihrem neuen Schlüssel OTPs erzeugen!

Was ist modhex?

Sobald der YubiKey angeschlossen ist, behandelt ihn das Betriebssystem wie eine USB-Tastatur. USB-Tastaturen senden Scancodes an das Betriebssystem, die dieses dann als Tastendrücke interpretiert. Der YubiKey muss sicherstellen, dass keine Mehrdeutigkeiten entstehen: Es gibt viele verschiedene Tastaturbelegungen, und die Scancodes müssen auf allen Rechnern mit unterschiedlichen Belegungen als dasselbe Zeichen interpretiert werden. Um dies zu beheben, hat Yubico „modhex“ entwickelt – eine modifizierte Darstellung von Hexadezimalzeichen, die ausschließlich „sichere“ Zeichen verwendet. „Sichere“ Zeichen sind Zeichen, die auf allen Tastaturbelegungen denselben Scancode haben.

Hochladen des erzeugten AES-Schlüssels zu Yubico

Wenn Sie den AES-Schlüssel Ihres YubiKey anpassen, ihn aber weiterhin zur Authentifizierung über die Yubico-Server verwenden möchten, können Sie den Schlüssel auf https://upgrade.yubico.com/getapikey/ hochladen. Sie müssen dazu Ihre E-Mail-Adresse und das OTP Ihres YubiKey eingeben.

Aktualisieren der PINs des PIV-Moduls

Das Modul Personal Identity Verification (PIV) speichert private Schlüssel und zugehörige Zertifikatsdateien für Zwecke wie Verschlüsselung, Authentifizierung und Signaturen. Wenn Ihr YubiKey dies unterstützt, sollten Sie die PIN, den PUK und den Management-Schlüssel ändern.

Legen Sie die PIN fest.

$ ykman piv access change-pin
Enter the current PIN: 123456
Enter the new PIN: ********
Repeat for confirmation: ********
New PIN set.

Legen Sie die PUK fest.

$ ykman piv access change-puk
Enter the current PUK: 12345678
Enter the new PUK: ********
Repeat for confirmation: ********
New PUK set.

Aktualisieren Sie den Management-Schlüssel.

$ ykman piv access change-management-key --generate --protect
Enter the current management key [blank to use default key]:
Enter PIN: ********

Sie können nun das PIV-Modul zum Erzeugen privater Schlüssel und Speichern von Zertifikaten verwenden.

Ändern der PIN des FIDO2-Moduls

FIDO2 ist ein offener Authentifizierungsstandard und umfasst Unterstandards und Protokolle, um entweder Zwei-Faktor- oder sogar passwortlose Authentifizierungsmethoden bereitzustellen.

Ein interessanter Anwendungsfall des FIDO-Moduls ist die Speicherung von öffentlichen OpenSSH-Schlüssel-Identitäten, die von modernen OpenSSH-Agenten sofort erkannt und verwendet werden können. Dadurch werden SSH-Schlüssel sehr portabel.

Wenn Ihr Schlüssel FIDO unterstützt, ändern Sie seine PIN mit ykman fido access wie folgt:

$ ykman piv access change-pin
Enter the current PIN: 123456
Enter the new PIN: ********
Repeat for confirmation: ********
New PIN set.

Ein Passwort für OATH einrichten

Das OATH-Funktionsmerkmal bietet die Authentifizierungsprotokolle TOTP und HOTP. Es kann mit einer Passphrase geschützt werden, um darauf zuzugreifen und OTP-Codes zu erzeugen. Dies unterscheidet sich vom Yubico-OTP-Funktionsmerkmal, das ein einzelnes gespeichertes Geheimnis auf dem YubiKey für das Challenge-Response-Verfahren verwendet.

Ändern Sie das OATH-Passwort mit:

$ ykman oath access change
Enter the new password:
Repeat for confirmation:

Konfigurieren Sie Ihr Gerät so, dass es sich dieses Passwort merkt, damit Sie es nicht mehr erneut eingeben müssen.

$ ykman oath access remember

Verwenden des YubiKey zum Authentifizieren an OpenSSH-Servern

Mit FIDO2 und OpenSSH in Version 8.2 oder neuer können Sie OpenSSH-Schlüssel erzeugen, die nur bei angeschlossenem YubiKey verwendbar sind. Die Schlüsselnutzung kann entweder durch Anwesenheitsprüfung oder durch Anwesenheitsprüfung und PIN-Eingabe geschützt werden.

Erzeugen Sie auf jedem Host, auf dem Sie den privaten Schlüssel verwenden möchten, einen öffentlichen Schlüssel, damit ein OpenSSH-Agent ihn finden kann:

$ ssh-keygen -t ed25519-sk

Erzeugen Sie den öffentlichen Schlüssel und speichern Sie seine Identität im FIDO2-Modul, um das private-öffentliche Schlüsselpaar portabel zu machen:

$ ssh-keygen -t ed25519-sk -O resident -O application=ssh:fedora -O verify-required
Sogenannte „Resident“-Schlüssel erfordern, dass der private Schlüssel durch eine PIN geschützt wird.

Alternative für Schlüssel ohne FIDO2-Unterstützung

Falls der Schlüssel FIDO2 nicht unterstützt, müssen Sie eine alternative Methode über das PIV-Modul und PKCS#11 verwenden.

Erstellen Sie einen privaten ED25519-Schlüssel innerhalb des PIV-Moduls, der bei Verwendung die Eingabe einer PIN benötigt und immer das Drücken der YubiKey-Taste erfordert:

$ ykman piv keys generate --algorithm ED25519 --pin-policy ONCE --touch-policy ALWAYS 9a public.pem
Enter PIN: ********

Der Slot 9a des Schlüssels dient der Authentifizierung. Weitere Slots finden Sie hier für Funktionsmerkmale wie Verschlüsselung oder Signierung.

Erstellen Sie in diesem Slot ein Zertifikat für die PIV/PKCS#11-Bibliothek:

$ ykman piv certificates generate --subject "CN=OpenSSH" --hash-algorithm SHA384 9a pubkey.pem
Enter PIN: ********
Touch your YubiKey…

Erzeugen Sie nun einen öffentlichen Schlüssel aus dem auf dem YubiKey gespeicherten X.509-Zertifikat. Andere Funktionen wie residente Schlüssel funktionieren genauso wie beim FIDO2-Verfahren, allerdings müssen Sie die unten gezeigte Zusatzoption hinzufügen.

$ ssh-keygen -D /usr/lib/libykcs11.so -e

Melden Sie sich mit diesem öffentlichen Schlüssel bei Systemen an:

$ ssh -I /usr/lib/libykcs11.so user@remote.example.org

Der SSH-Agent kann auch Schlüssel vom YubiKey laden mit:

$ ssh -s /usr/lib/libykcs11.so

Verwenden des YubiKey zum Authentifizieren an Webseiten

Seit 2019 wird an der Standardisierung der YubiKey-Nutzung im Web gearbeitet. Der neue Standard heißt WebAuthn. Weitere Informationen dazu finden Sie hier: https://www.yubico.com/solutions/webauthn/. Aktuell ist der einfachste Weg, um herauszufinden, welche Plattformen den YubiKey unterstützen, der Katalog von Yubico.

Alternativ zu Yubico OTP oder WebAuthn, die beide standardmäßig keine Speicherung von Anmeldeinformationen auf dem YubiKey erfordern, können Sie auch das herkömmliche TOTP-Verfahren verwenden, das heutzutage auf den meisten Websites zum Einsatz kommt. Es gibt Desktop- und Android-Apps, die die Nutzung komfortabel ermöglichen. Auf einem YubiKey 5 lassen sich bis zu 32 TOTP-Anmeldeinformationen speichern.

Installieren Sie die Desktop-Anwendung aus den offiziellen Paketquellen:

$ sudo dnf install -y yubioath-desktop

Fügen Sie ein TOTP-Konto mit ykman wie folgt hinzu:

$ ykman oath accounts add google <TOTP secret>

Rufen Sie einen TOTP-Code folgendermaßen ab:

$ ykman oath accounts code google