YubiKeys mit Fedora verwenden
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. === |
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
|
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. |
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
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 Um sie tatsächlich nutzen zu können, müssen Sie eine dieser Dateien in die PAM-Konfiguration des gewünschten Dienstes (z. B. |
#%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 *vorauth substack system-auth(oderauth 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-sufficientoderyubikey-required -
Für pam_u2f (manuelle PAM-Konfiguration) verwenden Sie
u2f-sufficientoderu2f-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
Want to help? Learn how to contribute to Fedora Docs ›