Files
hugo_docker/content/yubikey_setup_guide.md
2026-09-08 11:02:29 +02:00

149 lines
8.0 KiB
Markdown

---
title: "YubiKey-Einrichtung unter Manjaro Sway"
date: "2026-09-08"
---
# 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:
```bash
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:
```bash
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:
```bash
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:
```bash
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](https://developers.yubico.com/PGP/)
(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](https://wiki.archlinux.org/title/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:**
```bash
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:**
```bash
sudo pacman -S pam-u2f
```
2. **Konfigurationsdatei für den YubiKey erstellen:**
Diese Datei ordnet Ihren YubiKey Ihrem Benutzerkonto zu.
```bash
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:
```bash
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.