YubiKey-Einrichtung unter Manjaro Sway

Inhaltsverzeichnis

YubiKey-Einrichtung unter Manjaro Sway

Diese Anleitung beschreibt, wie Sie einen YubiKey unter Manjaro Sway für verschiedene Anwendungsfälle konfigurieren.


Übersicht der Anwendungsfälle:

  1. FIDO2/U2F: Für die Zwei-Faktor-Authentifizierung auf Webseiten.
  2. GPG: Zur Verschlüsselung von E-Mails/Dateien und zum Signieren von Git-Commits.
  3. SSH: Zur sicheren Anmeldung auf Servern.
  4. PAM: Zur Anmeldung am System oder für sudo (fortgeschritten und mit Vorsicht zu genießen).

Schritt 1: Notwendige Pakete installieren

Zuerst müssen Sie die erforderlichen Pakete über den Paketmanager pacman installieren. Öffnen Sie ein Terminal und führen Sie den folgenden Befehl aus:

sudo pacman -S yubikey-manager yubikey-personalization libfido2 gnupg pcsclite ccid

Erklärung der Pakete:

  • yubikey-manager: Das wichtigste Werkzeug zur Konfiguration Ihres YubiKeys.
  • yubikey-personalization: Für ältere YubiKey-Modelle oder spezielle Konfigurationen (obwohl yubikey-manager oft bevorzugt wird).
  • libfido2: Stellt die FIDO2-Unterstützung für WebAuthn in Browsern sicher.
  • gnupg: Das GnuPG-Programm, notwendig für die Smartcard-Funktionen des YubiKeys.
  • pcsclite & ccid: Systemdienste, die die Kommunikation mit dem YubiKey als Smartcard ermöglichen.

Nach der Installation ist es eine gute Idee, den pcscd-Dienst zu aktivieren und zu starten:

sudo systemctl enable pcscd.service
sudo systemctl start pcscd.service

Schritt 2: YubiKey erkennen und Status prüfen

Stecken Sie Ihren YubiKey ein und überprüfen Sie, ob das System ihn erkennt:

ykman info

Wenn alles korrekt ist, sollten Sie hier Informationen zu Ihrem YubiKey-Modell und dessen Firmware-Version sehen.


Anwendungsfälle:

Anwendungsfall A: Web-Authentifizierung (FIDO2/U2F)

Dies ist der einfachste Fall und erfordert in der Regel keine zusätzliche Konfiguration nach der Installation von libfido2.

  1. Voraussetzung: Ein unterstützter Webbrowser (Firefox, Chrome, Brave, Edge, etc.).
  2. Registrierung: Gehen Sie zu einer Webseite, die WebAuthn oder FIDO2 unterstützt (z.B. GitHub, Google, GitLab). Navigieren Sie zu den Sicherheitseinstellungen der Webseite.
  3. YubiKey hinzufügen: Registrieren Sie Ihren YubiKey als neuen Sicherheitsschlüssel. Der Browser sollte Sie auffordern, den YubiKey zu berühren.

Das war’s schon! Sie können den YubiKey nun für die Zwei-Faktor-Authentifizierung (2FA) auf diesen Seiten verwenden.

Anwendungsfall B: GPG für Verschlüsselung und Signaturen

Sie können den YubiKey als Hardware-Speicher für Ihre GPG-Schlüssel verwenden. Das ist sehr sicher, da die privaten Schlüssel den YubiKey niemals verlassen.

  1. GPG-Status prüfen: Stecken Sie den YubiKey ein und führen Sie aus:

    gpg --card-status
    

    Wenn GPG den YubiKey als “Card” erkennt, sind Sie bereit für die weitere Konfiguration.

  2. Schlüssel generieren oder importieren: Der Prozess, GPG-Schlüssel zu erstellen und auf den YubiKey zu übertragen, ist sehr umfangreich und sollte sorgfältig durchgeführt werden. Die offizielle Anleitung von Yubico ist hierfür die beste Quelle: Yubico Docs: Using Your YubiKey with GPG (Stellen Sie sicher, dass Sie eine aktuelle Anleitung verwenden, die zu Ihrer YubiKey-Firmware passt.)

Anwendungsfall C: SSH-Authentifizierung

Sie können den YubiKey auch für die SSH-Authentifizierung verwenden, um sich sicher auf Servern anzumelden.

Möglichkeit 1: SSH-Authentifizierung über GPG Wenn Sie bereits GPG (Anwendungsfall B) eingerichtet haben, können Sie den Authentifizierungs-Unterschlüssel Ihres GPG-Schlüssels für SSH verwenden.

  1. Fügen Sie enable-ssh-support zu Ihrer ~/.gnupg/gpg-agent.conf hinzu.
  2. Folgen Sie einer Anleitung, um den GPG-Agent als SSH-Agent zu konfigurieren, z.B. für Arch Linux (Manjaro basiert darauf): ArchWiki: GnuPG - SSH agent

Möglichkeit 2: Direkte FIDO-basierte SSH-Schlüssel (neuere YubiKeys) Neuere YubiKeys (ab Firmware 5.2.7) können direkt als FIDO-Gerät für SSH-Schlüssel vom Typ ecdsa-sk oder ed25519-sk verwendet werden. Dies erfordert OpenSSH ab Version 8.2.

  1. Schlüssel generieren:

    ssh-keygen -t ed25519-sk -C "mein-yubikey-ssh-schluessel"
    

    ssh-keygen wird Sie auffordern, Ihren YubiKey zu berühren, um den Schlüssel zu erstellen.

  2. Öffentlichen Schlüssel verwenden: Den generierten öffentlichen Schlüssel (z.B. ~/.ssh/id_ed25519_sk.pub) können Sie wie gewohnt auf Ihre Server in die ~/.ssh/authorized_keys-Datei kopieren. Bei der SSH-Anmeldung wird Ihre SSH-Anwendung Sie dann auffordern, den YubiKey zu berühren.

Anwendungsfall D: System-Login und Sudo (PAM) - Für Fortgeschrittene und mit äußerster Vorsicht!

Sie können den YubiKey auch verwenden, um sich am System anzumelden oder sudo-Befehle zu autorisieren. Eine Fehlkonfiguration hier kann Sie von Ihrem System ausschließen.

⚠️ WARNUNG:

  • Lassen Sie IMMER ein zweites Terminal mit einer aktiven Root-Shell (sudo -i) offen, während Sie die PAM-Konfiguration ändern. So können Sie Fehler sofort korrigieren.
  • Erstellen Sie vor Änderungen an PAM-Dateien immer Backups der Originaldateien (z.B. sudo cp /etc/pam.d/sudo /etc/pam.d/sudo.bak).
  1. PAM-Modul installieren:

    sudo pacman -S pam-u2f
    
  2. Konfigurationsdatei für den YubiKey erstellen: Diese Datei ordnet Ihren YubiKey Ihrem Benutzerkonto zu.

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

    Wichtig: Stecken Sie Ihren YubiKey ein und berühren Sie ihn, wenn die LED während der Ausführung von pamu2fcfg blinkt.

  3. PAM-Datei bearbeiten (Beispiel für sudo): Öffnen Sie die sudo-PAM-Konfiguration zum Bearbeiten:

    sudo nano /etc/pam.d/sudo
    

    Fügen Sie die folgende Zeile GANZ OBEN in die Datei ein:

    auth       sufficient   pam_u2f.so authfile=/home/DEIN_BENUTZER/.config/Yubico/u2f_keys
    
    • Ersetzen Sie DEIN_BENUTZER durch Ihren tatsächlichen Linux-Benutzernamen (z.B. jonnybravo).
    • auth sufficient: Bedeutet, dass eine erfolgreiche Authentifizierung mit dem YubiKey ausreicht. Wenn der YubiKey nicht eingesteckt ist oder die Authentifizierung fehlschlägt, wird die nächste Authentifizierungsmethode (normalerweise das Passwort) verwendet. Dies ist sicherer, um sich nicht auszusperren. Wenn Sie required verwenden, MUSS der YubiKey funktionieren.
  4. Testen: Öffnen Sie ein neues Terminal (NICHT das, in dem Ihre Root-Shell läuft) und testen Sie den sudo-Befehl (z.B. sudo ls). Sie sollten aufgefordert werden, Ihren YubiKey zu berühren. Berühren Sie ihn und prüfen Sie, ob sudo funktioniert. Funktioniert es nicht, nutzen Sie das Root-Terminal, um die Änderungen rückgängig zu machen.

Weitere PAM-Anwendungen: Ähnliche Einträge können Sie auch für den Login-Manager (z.B. sddm, gdm, lightdm) oder den Screensaver (z.B. swaylock) in deren entsprechenden PAM-Dateien (/etc/pam.d/<dienstname>) hinzufügen. Das genaue Vorgehen kann je nach Dienst variieren.


Wichtige Hinweise:

  • PINs und PUKs: Merken Sie sich die PINs und PUKs Ihres YubiKeys. Sie sind für viele Funktionen unerlässlich.
  • Backups: Erstellen Sie immer Backups Ihrer GPG-Schlüssel, bevor Sie diese auf den YubiKey verschieben.
  • Vorsicht bei PAM: PAM-Konfigurationen sind mächtig. Testen Sie Änderungen immer sorgfältig und haben Sie einen Notfallplan (z.B. eine Live-CD oder das offene Root-Terminal).
  • Firmware: Stellen Sie sicher, dass die Firmware Ihres YubiKeys aktuell ist (ykman firmware info).
  • Dokumentation: Die Yubico-Dokumentation ist exzellent und sollte bei spezifischen Problemen oder fortgeschrittenen Konfigurationen konsultiert werden.