Ubuntu 16.04 - YubiKey für SSH Zwei-Faktor-Authentifizierung (2FA) verwenden
Vorwort
Diese Dokumentation beschreibt den Installationsvorgang und Einrichtung der Zwei-Faktor-Authentifizierung für den SSH-Login mit YubiKey (Yubico-OTP).
Bitte vergewissern Sie sich, dass Ihr System über die nötigen Voraussetzungen verfügt, wie in der Infobox beschrieben. Weiterhin sind Grundkenntnisse im Umgang mit Linux erforderlich, da die Vorgehensweise, wie sie hier beschrieben ist, in manchen Teilen abweichen kann. Kein System ist wie das Andere. Die Dokumentation wurde sorgfältig von mir geprüft. Dennoch kann ich keinerlei Haftung für Schäden an Ihrem System oder eine Gewährleistung übernehmen. Bitte verwenden Sie diese Dokumentation auf eigene Gefahr.
Verwendete Software:
Voraussetzungen:
- programmierter YubiKey
- Yubico-OTP-Backend:
Weitere, empfohlene Dokumentationen:
Server vorbereiten
Root-Rechte einräumen
Während der gesamten Dokumentation werden Root-Rechte benötigt. Um auf das Voranstellen von sudo
zu verzichten, verschaffen Sie sich für die gesamte Sitzung erhöhte Rechte mit:
# sudo -i
Update durchführen
Bringen Sie den Server auf den aktuellen Patchstand:
# apt update && apt upgrade
Software herunterladen und installieren
Fügen Sie das Yubico-Repository hinzu:
# add-apt-repository ppa:yubico/stable # apt update
Installieren Sie das Yubico-PAM-Module:
# apt install libpam-yubico
Zwei-Faktor-Authentifizierung einrichten
YubiKeys zuordnen
Erstellen Sie die Datei /etc/yubikey_mappings
nach folgendem Syntax:
# nano /etc/yubikey_mappings
<USER1>:<YUBIKEY1-PUBLIC-ID>:<YUBIKEY2-PUBLIC-ID> <USER2>:<YUBIKEY3-PUBLIC-ID>
SSH-Server konfigurieren
sshd_config editieren
Edititieren Sie die Datei /etc/ssh/sshd_config
und ändern Sie folgende Parameter:
# nano /etc/ssh/sshd_config
# sshd_config
ChallengeResponseAuthentication yes
UsePAM yes
sshd editieren
Fügen Sie folgenden Parameter an das Ende der Datei /etc/pam.d/sshd
ein:
# nano /etc/pam.d/sshd
[...] # Yubico-OTP auth required pam_yubico.so id=<CLIENT API-ID> key=<CLIENT API-KEY> urllist=https://<YUBICO-VAL-SERVER>/wsapi/2.0/verify debug authfile=/etc/yubikey_mappings
Abschluss und Test
Starten Sie den SSH-Daemon neu, damit die Konfiguration angewendet wird:
# service ssh restart
Verbinden Sie sich mit per SSH mit dem soeben konfigurierten Server.
Nach erfolgreicher Eingabe des Passworts erscheint nun die zusätzliche Aufforderung nach dem YubiKey-OTP: