Implementierung der Zwei-Faktor-Authentifizierung (2FA) mit SSH auf Debian 11-Servern
11:17, 28.07.2026
Um die Sicherheit Ihres Debian-11-Servers zu erhöhen, wird die Verwendung der Zwei-Faktor-Authentifizierung dringend empfohlen. Falls Sie die 2FA implementieren möchten, finden Sie in dieser Anleitung detaillierte Informationen zum Einrichtungsprozess.
Grundlagen der Zwei-Faktor-Authentifizierung
Um sich auf dem Debian-Server anzumelden, geben Benutzer normalerweise lediglich das Passwort oder den SSH-Schlüssel ein. Die Zwei-Faktor-Authentifizierung macht die Anmeldung sicherer, da zwei verschiedene Informationen erforderlich sind, um Zugang zum System zu erhalten. Zusätzlich zum Standardpasswort müssen Benutzer ein Einmalpasswort eingeben, um sich beim Debian-Server anzumelden. Dieses temporäre Passwort wird mithilfe des TOTP-Algorithmus generiert. Heutzutage setzen viele Plattformen aus Sicherheitsgründen auf die 2FA – eine hervorragende Maßnahme, die Ihren Server erheblich vor unbefugten Zugriffsversuchen schützen kann.
In dieser Anleitung geben wir Ihnen praktische Empfehlungen zur Einrichtung der 2FA, damit Sie ein klares Verständnis der Authentifizierung per öffentlichem Schlüssel und der Passwort-Authentifizierung erhalten. Die für die 2FA verwendete Software ist Open-Source und heißt „libpam-authenticator“.
Schritt 1: Einrichtung von Google Authenticator auf einem Debian-Server
Um den Authenticator aus dem Standard-Repository zu installieren, sollten Sie den folgenden Befehl verwenden:
sudo apt install -y libpam-google-authenticator
Verwenden Sie zur Schlüsselerstellung den folgenden Befehl:
google-authenticator
Anschließend werden Sie gefragt, ob die Authentifizierungstoken zeitbasiert sein sollen; geben Sie hier „Y“ ein. Danach erhalten Sie einen QR-Code, den Sie mit der TOTP-App auf Ihrem Smartphone scannen müssen. Hier sind zwei Produkte, die empfehlenswert sind:
- Die nicht-Open-Source-App „Google Authenticator“ für Mobilgeräte. Falls Sie keine Google-Produkte verwenden möchten, können Sie auf die von Red Hat zurückgreifen und FreeOTP ausprobieren.
- Google Authenticator lässt sich ganz einfach über den Apple Store oder Google Play auf Ihrem Gerät installieren.
Vergessen Sie nicht, das Fenster zu vergrößern, um den vollständigen QR-Code mit der gewählten Authentifizierungsmethode auf Ihrem Gerät einzulesen. Sobald dieser Vorgang abgeschlossen ist, erhalten Sie einen 6-stelligen Code auf Ihrem Mobilgerät; gemäß der Standardeinstellung ändert sich dieser Code alle 30 Sekunden. Geben Sie ihn zur Bestätigung Ihres Zugriffs ein.
Im Terminalfenster werden Ihnen die Informationen zum Verifizierungscode, zum geheimen Schlüssel und zum Scratch-Code angezeigt. Es wird dringend empfohlen, diese Daten an einem sicheren Ort für spätere Zwecke zu speichern.
Unterhalb dieser Informationen werden dann einige Fragen aufgelistet, die Sie mit „Y“ (Ja) beantworten sollten. Dadurch verlängern Sie das Zeitfenster, aktualisieren die Konfigurationsdatei des Authenticators, aktivieren Ratenbegrenzungen für einen besseren Schutz und deaktivieren die Unterstützung mehrerer Benutzer.
Schritt 2: Google Authenticator für den SSH-Zugriff aktivieren
Passwortauthentifizierung mit 2FA verwenden
Für diejenigen, die die Passwortauthentifizierung mit 2FA nutzen möchten. Hier finden Sie eine kurze Anleitung zum gesamten Vorgang. Öffnen Sie zunächst die Konfigurationsdatei mit:
sudo nano /etc/ssh/sshd_config
Suchen Sie in der Datei nach Parametern wie „ChallengeResponseAut.“ und „UseRAM“ und setzen Sie beide auf „yes“.
PAM steht für ein spezielles Authentifizierungsmodul, sodass sich verschiedene Authentifizierungsmethoden problemlos in Ihr Debian-System integrieren lassen. Um eine ordnungsgemäße Authentifizierung über SSH zu ermöglichen, sollten beide Parameter aktiviert sein.
Ein weiterer wichtiger Parameter, der auf „Yes“ gesetzt werden sollte, ist „PermitRootLogin“. Um die Zwei-Faktor-Authentifizierung zu ermöglichen, darf sein Wert nicht „prohibited-PW“ oder „no“ lauten. Überprüfen Sie daher, ob in der Konfigurationsdatei alles korrekt angegeben ist.
Nachdem Sie die Datei mit allen vorgenommenen Änderungen gespeichert haben, sollten Sie die folgenden wichtigen Schritte ausführen:
sudo nano /etc/pam.d/sshd
Suchen Sie in der Datei die Zeile mit „ChallengeResponseAuth.“ und ändern Sie deren Wert ebenfalls auf „Yes“. Dieser Parameter ermöglicht einen ordnungsgemäßen Passwort-Authentifizierungsprozess.
@include common-auth
Vergessen Sie außerdem nicht, die folgenden Angaben hinzuzufügen:
auth required pam_google_authenticator.so
Speichern Sie die Datei mit den vorgenommenen Änderungen und starten Sie SSH mit dem folgenden Befehl neu:
sudo systemctl restart ssh
Sobald Sie alle oben genannten Anweisungen befolgt haben, werden Sie beim Einloggen in das System sowohl nach dem Bestätigungscode als auch nach Ihrem Passwort gefragt. Der Bestätigungscode ist ein einmalig generierter Code, den Sie auf Ihrem Mobilgerät erhalten. Noch ein Hinweis, den Sie beachten sollten: Schließen Sie die aktuelle Sitzung nicht. Zu Testzwecken sollten Sie ein weiteres Fenster öffnen; sollten Probleme auftreten, ist die ursprüngliche SSH-Sitzung entscheidend für die Behebung des Problems.
Kombination der Authentifizierung per öffentlichem Schlüssel mit 2FA
Um die Authentifizierung per öffentlichem Schlüssel mit 2FA zu kombinieren, finden Sie hier eine Schritt-für-Schritt-Anleitung. Öffnen Sie zunächst die Konfigurationsdatei:
sudo nano /etc/ssh/sshd_config
In der Datei müssen Sie zwei Parameter suchen und diese auf „Yes“ setzen. Suchen Sie nach „ChallengeResponseAuth“ und „UsePAM“ und ändern Sie deren Werte entsprechend, sobald Sie sie gefunden haben.
PAM steht für ein spezielles Authentifizierungsmodul, das benötigt wird, um verschiedene Authentifizierungsmethoden auf dem Debian-System problemlos zu integrieren. Um den Google Authenticator zu aktivieren, sollten beide Parameter aktiviert sein.
Falls Sie auch als Root-Benutzer auf die Zwei-Faktor-Authentifizierung zugreifen möchten, suchen Sie außerdem nach einem weiteren Parameter namens „PermitRootLogin“. Sobald Sie ihn gefunden haben, sollten Sie dessen Wert ebenfalls auf „Y“ (Ja) ändern; ein anderer Wert ist in diesem Fall nicht zulässig.
Sobald Sie alle oben genannten Schritte abgeschlossen haben, sollten Sie der Datei außerdem eine weitere Zeile hinzufügen:
AuthenticationMethods publickey,keyboard-interactive
Schließen Sie die Datei mit allen gespeicherten Änderungen. Der nächste Schritt ist die Bearbeitung der PAM-Regeln:
sudo nano /etc/pam.d/sshd
In der Datei sollten Sie den folgenden Parameter finden: „ChallengeResponseAuthen“ mit dem Wert „Yes“. Im nächsten Schritt müssen Sie diesen Teil auskommentieren, da Sie den SSH-Schlüssel verwenden werden.
@include common-auth
Um den Vorgang zu aktivieren, ist die folgende Zeile äußerst wichtig:
auth required pam_google_authenticator.so
Speichern Sie die Datei nach allen Änderungen und starten Sie das System mit dem folgenden Befehl neu:
sudo systemctl restart ssh
Wenn nun alles auf Ihrem Debian-Server ordnungsgemäß eingerichtet ist, können Sie sichere Anmeldeverfahren nutzen, bei denen Sie sowohl den Bestätigungscode als auch den SSH-Schlüssel eingeben. Noch ein letzter Hinweis: Schließen Sie die aktuelle Sitzung nicht. Öffnen Sie ein weiteres Terminalfenster und testen Sie, ob alles wie gewünscht funktioniert; im Falle von Problemen können Sie auf diese ursprüngliche Sitzung zurückgreifen.
Wichtige Hinweise
- Benutzer von Debian-Servern sollten unbedingt den QR-Code scannen und die Authentifizierungsbefehle ausführen, um alles ordnungsgemäß einzurichten. Andernfalls kommt es zu Problemen mit der Verweigerung von Berechtigungen.
- Vergessen Sie nicht, Ihren Scratch-Code zu speichern. Im Notfall, wenn Sie aus irgendeinem Grund keinen Zugriff auf Ihr Mobilgerät haben, können Sie einen der 5 verfügbaren Einmalcodes verwenden, um den Verifizierungsprozess abzuschließen. Jeder Code kann nur einmal verwendet werden, denken Sie also daran.
- Um den geheimen Schlüssel zu ändern, müssen Sie lediglich den Befehl google-authenticator ausführen und diese Datei aktualisieren.
- Für einen reibungslosen Authentifizierungsprozess sollten Sie auch die Zeitzonen überprüfen. Das Einmalpasswort wird anhand der aktuellen Zeitinformationen generiert, daher ist es ratsam, die Synchronisierung auf dem Debian-Server und Ihrem Mobilgerät zu aktivieren.
Deaktivierung der SSH-Zwei-Faktor-Authentifizierung
Um den Deaktivierungsvorgang zu starten, sollten Sie folgenden Befehl verwenden:
sudo nano /etc/pam.d/sshd
Der nächste Schritt ist das Auskommentieren von:
auth required pam_google_authenticator.so
Falls Sie die Zeile mit „AuthenticationMethods“ hinzugefügt haben, sollten Sie den Teil keyboard-interactive löschen. Fügen Sie stattdessen den Teil publickey ein und speichern Sie die Änderungen. Der letzte Schritt ist der Neustart des Systems mit:
sudo systemctl restart ssh
Abschließende Zusammenfassung
Wir hoffen, dass diese Informationen hilfreich waren und Sie nun ein klares Verständnis davon haben, wie alle Prozesse funktionieren und wie Sie alles richtig einrichten. Für den Fall, dass Probleme auftreten, haben wir auch einige Empfehlungen zur Behebung von Authentifizierungsproblemen besprochen.