Wenn dein Debian-Server (oder Raspberry Pi OS) per SSH erreichbar ist, solltest du ihn unbedingt zusätzlich absichern.
Mit 2-Faktor-Authentifizierung (2FA) schützt du dein System selbst dann, wenn jemand dein Passwort kennt.
Für Debian nutzt man dafür meist den Google Authenticator.
Wichtig: Du brauchst kein Google-Konto – es handelt sich um den offenen Standard TOTP (Time-based One-Time Password).
Hier kommt die vollständige Schritt-für-Schritt-Anleitung zur Absicherung von SSH mit 2FA.
✅ Voraussetzungen
- Debian Server oder Raspberry Pi OS
- SSH-Zugang funktioniert bereits
- Ein Smartphone mit einer TOTP-App (z. B. Google Authenticator, Authy oder Bitwarden)
1️⃣ Benötigtes PAM-Modul installieren
Zuerst installierst du das Google-Authenticator-PAM-Modul:
sudo apt update sudo apt install libpam-google-authenticator
2️⃣ 2FA für deinen Benutzer einrichten
⚠ Wichtig:
Führe diesen Schritt mit dem Benutzer aus, mit dem du dich später per SSH einloggst – NICHT als root.
Starte das Setup:
google-authenticator
Beantworte die Fragen wie folgt:
| Frage | Antwort | Empfehlung |
|---|---|---|
| Do you want authentication tokens to be time-based? | y | Standard TOTP |
| QR-Code anzeigen? | Scannen | Mit deiner Authenticator-App |
| Emergency scratch codes | Aufschreiben! | Backup bei Handyverlust |
| Update your .google_authenticator file? | y | Speichert Konfiguration |
| Disallow multiple uses of the same token? | y | Schutz vor Replay |
| Increase time window? | n | Nur bei falscher Systemzeit |
| Enable rate-limiting? | y | Schutz vor Brute-Force |
Nach Abschluss wird die Datei .google_authenticator im Home-Verzeichnis gespeichert.
3️⃣ PAM für SSH aktivieren
Jetzt bringen wir SSH bei, 2FA zu verwenden.
Öffne die PAM-Konfiguration:
sudo nano /etc/pam.d/sshd
Füge ganz oben (oder direkt unter @include common-auth) folgende Zeile ein:
auth required pam_google_authenticator.so
Datei speichern.
4️⃣ SSH-Daemon konfigurieren
Öffne die SSH-Konfigurationsdatei:
sudo nano /etc/ssh/sshd_config
Suche folgende Einträge und stelle sicher, dass sie so gesetzt sind:
UsePAM yes KbdInteractiveAuthentication yes
Hinweis: In älteren Debian-Versionen heißt die Option
ChallengeResponseAuthentication.
Optional – wenn du Passwort + 2FA erzwingen willst, stelle sicher:
PasswordAuthentication yes
Speichern und schließen.
5️⃣ SSH-Dienst neu starten
sudo systemctl restart ssh
⚠️ WICHTIG: Sicherheitstest durchführen
Schließe deine aktuelle SSH-Verbindung NICHT!
Stattdessen:
- Öffne ein neues Terminal-Fenster
- Verbinde dich erneut per SSH
- Teste den Login
Wenn alles korrekt funktioniert:
- Passwort eingeben
- Danach erscheint:
Verification code: - 6-stelligen Code aus deiner Authenticator-App eingeben
Erst wenn das erfolgreich funktioniert, kannst du das alte Terminal schließen.
🔐 Optional: Noch sicherer machen (Empfohlen)
Für maximale Sicherheit kannst du zusätzlich:
Nur SSH-Key + 2FA erlauben
In /etc/ssh/sshd_config:
PasswordAuthentication no AuthenticationMethods publickey,keyboard-interactive
Dann neu starten:
sudo systemctl restart ssh
Damit brauchst du:
- SSH-Key
- UND 2FA-Code
Das ist extrem sicher.
🛡 Fehlerbehebung
2FA wird nicht abgefragt?
Prüfe:
sudo sshd -t
Wenn keine Fehler angezeigt werden, ist die Konfiguration syntaktisch korrekt.
🎯 Fazit
Mit wenigen Schritten hast du:
- Brute-Force-Angriffe stark reduziert
- Passwortdiebstahl abgesichert
- Deinen Debian-Server professionell gehärtet
2FA über SSH ist heute ein Sicherheitsstandard – besonders bei öffentlich erreichbaren Servern.

Leave a Reply