SSH 2FA-Einrichtung: Sicherheit mit Google Authenticator
Zwei-Faktor-Authentifizierung (2FA) für SSH-Zugriff einrichten. Google Authenticator PAM-Modul, TOTP-Setup für SSH, Backup-Codes, Tests und Fehlerbehebungsanleitung.
Inhaltsverzeichnis
SSH 2FA-Einrichtung: Sicherheit mit Google Authenticator
Obwohl die Verwendung von SSH-Schlüsseln die Sicherheit verbessert, bietet die Zwei-Faktor-Authentifizierung (2FA) eine zusätzliche Sicherheitsebene. Selbst wenn jemand Ihren SSH-Schlüssel erhält, kann er ohne den 2FA-Code nicht auf das System zugreifen.
Warum ist 2FA wichtig?
- Schutz bei gestohlenen Schlüsseln: Selbst wenn SSH-Schlüssel gestohlen wird, ist 2FA-Code erforderlich
- Brute-Force-Resistenz: Passwort + 2FA-Kombination ist viel stärker
- Compliance: Standards wie PCI-DSS und HIPAA erfordern 2FA
- Einfache Einrichtung: In wenigen Minuten aktivierbar
Voraussetzungen
- Linux-Server (Ubuntu/Debian/CentOS)
- Smartphone (Google Authenticator, Authy oder ähnliche App)
- Bestehender SSH-Zugriff
Schließen Sie Ihre bestehende SSH-Verbindung während der 2FA-Einrichtung nicht. Testen Sie nach jedem Schritt von einem neuen Terminal aus. Falsche Konfiguration kann den Serverzugriff vollständig blockieren.
Google Authenticator PAM-Modul installieren
# Ubuntu/Debian
sudo apt update
sudo apt install libpam-google-authenticator -y
# CentOS/AlmaLinux
sudo dnf install epel-release -y
sudo dnf install google-authenticator -y
TOTP-Einrichtung
# Als Benutzer ausführen, für den 2FA aktiviert werden soll
google-authenticator
Beim Ausführen des Befehls werden folgende Fragen gestellt:
Do you want authentication tokens to be time-based (y/n) y
An diesem Punkt wird ein QR-Code und ein geheimer Schlüssel angezeigt. Scannen Sie den QR-Code mit der Google Authenticator-App.
Do you want me to update your "/home/user/.google_authenticator" file? (y/n) y
Do you want to disallow multiple uses of the same authentication token? (y/n) y
Do you want to increase the window size? (y/n) n
Do you want to enable rate-limiting? (y/n) y
Backup-Codes speichern
Während der Einrichtung werden 5 Backup-Codes angezeigt. Bewahren Sie diese an einem sicheren Ort auf:
Your emergency scratch codes are:
12345678
87654321
11223344
44332211
99887766
Bewahren Sie Backup-Codes an einem sicheren Ort auf (Passwort-Manager, Papier usw.). Wenn Sie Ihr Telefon verlieren, sind diese Codes Ihr einziger Zugang.
PAM-Konfiguration
sudo nano /etc/pam.d/sshd
# Am Anfang von /etc/pam.d/sshd hinzufügen:
auth required pam_google_authenticator.so
SSH-Konfiguration
sudo nano /etc/ssh/sshd_config
# Tastatur-interaktive Authentifizierung aktivieren
ChallengeResponseAuthentication yes
# Authentifizierungsmethoden festlegen
# Option 1: Nur 2FA
AuthenticationMethods keyboard-interactive
# Option 2: SSH-Schlüssel ODER 2FA
# AuthenticationMethods publickey keyboard-interactive
# Option 3: SSH-Schlüssel UND 2FA (sicherste)
AuthenticationMethods publickey,keyboard-interactive
UsePAM yes
# SSH-Dienst neu starten
sudo systemctl restart sshd
SSH-Schlüssel + 2FA-Kombination (Empfohlen)
sudo nano /etc/ssh/sshd_config
AuthenticationMethods publickey,keyboard-interactive
PasswordAuthentication no
ChallengeResponseAuthentication yes
UsePAM yes
sudo nano /etc/pam.d/sshd
# Passwort-Authentifizierung auskommentieren:
# @include common-auth
# 2FA hinzufügen
auth required pam_google_authenticator.so
Testen
# Neues Terminal öffnen und Verbindung versuchen
ssh benutzer@server_ip
# Erwartete Ausgabe:
# Verification code: (Code aus Google Authenticator eingeben)
Fehlerbehebung
2FA-Code wird nicht akzeptiert
# Serverzeit prüfen
date
timedatectl
# NTP-Synchronisation
sudo apt install ntp -y
sudo systemctl restart ntp
Wiederherstellung bei Aussperrung
# Über Konsolenzugang verbinden
# 2FA vorübergehend deaktivieren
sudo nano /etc/pam.d/sshd
# # vor: auth required pam_google_authenticator.so hinzufügen
sudo systemctl restart sshd
Bestimmte Benutzer von 2FA ausnehmen
sudo nano /etc/pam.d/sshd
# Bestimmte Gruppen ausnehmen
auth [success=1 default=ignore] pam_succeed_if.so user ingroup notp
auth required pam_google_authenticator.so
# notp-Gruppe erstellen und Benutzer hinzufügen
sudo groupadd notp
sudo usermod -aG notp deploy_user
Apps wie Authy oder 1Password bieten Cloud-Backup und Multi-Gerät-Unterstützung im Vergleich zu Google Authenticator. Erwägen Sie diese Alternativen für Unternehmensumgebungen.
Fazit
Die Einrichtung von 2FA für SSH verbessert die Serversicherheit erheblich. Mit dem Google Authenticator PAM-Modul können Sie TOTP-basiertes 2FA in wenigen Minuten aktivieren. Die SSH-Schlüssel + 2FA-Kombination bildet eine der stärksten verfügbaren Authentifizierungsmethoden.
Verwandte Artikel
Malware & Rootkit-Scan: rkhunter und ClamAV Anleitung
Schützen Sie Ihren Linux-Server vor Malware und Rootkits. rkhunter und ClamAV Installation, Scan-Konfiguration, Ergebnisinterpretation, geplante Scans und Incident-Response-Anleitung.
Fail2Ban Konfiguration: SSH Brute-Force-Schutz Anleitung
Schützen Sie Ihren Server vor SSH-Brute-Force-Angriffen mit Fail2Ban. Installation, jail.local-Konfiguration, Nginx/Apache-Jails, IP-Whitelist, Ban-Überwachung und E-Mail-Benachrichtigungen.
WireGuard VPN-Server einrichten: Schritt-für-Schritt-Anleitung
WireGuard VPN-Server einrichten: Schlüsselgenerierung, Server- und Client-Konfiguration, IP-Weiterleitung, Firewall-Regeln und Windows/Linux/Android-Client-Setup.