Zum Hauptinhalt springen
Zurück zur Kategorie

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.

Lesezeit: 12 min Sicherheit
2fazwei-faktor-authentifizierunggoogle authenticatortotpssh-sicherheitpamlinuxmfa
Autor
REXE Teknoloji Network & Security Team
Redaktion
REXE Teknoloji Technical Editorial
Erstveröffentlichung
Letzte Aktualisierung

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

hljs bash
# 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

hljs bash
# 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

hljs bash
sudo nano /etc/pam.d/sshd
# Am Anfang von /etc/pam.d/sshd hinzufügen:
auth required pam_google_authenticator.so

SSH-Konfiguration

hljs bash
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
hljs bash
# SSH-Dienst neu starten
sudo systemctl restart sshd

SSH-Schlüssel + 2FA-Kombination (Empfohlen)

hljs bash
sudo nano /etc/ssh/sshd_config
AuthenticationMethods publickey,keyboard-interactive
PasswordAuthentication no
ChallengeResponseAuthentication yes
UsePAM yes
hljs bash
sudo nano /etc/pam.d/sshd
# Passwort-Authentifizierung auskommentieren:
# @include common-auth

# 2FA hinzufügen
auth required pam_google_authenticator.so

Testen

hljs bash
# 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

hljs bash
# Serverzeit prüfen
date
timedatectl

# NTP-Synchronisation
sudo apt install ntp -y
sudo systemctl restart ntp

Wiederherstellung bei Aussperrung

hljs bash
# Ü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

hljs bash
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
hljs bash
# 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.

Häufig gestellte Fragen

Wie greife ich auf den Server zu, wenn ich mein Telefon verliere?

Verwenden Sie die während der Einrichtung bereitgestellten Backup-Codes. Diese Codes sind Einmalcodes. Wenn Sie auch Ihre Backup-Codes verloren haben, verbinden Sie sich über den Konsolenzugang und deaktivieren Sie vorübergehend die 2FA-Zeile in /etc/pam.d/sshd.

Der 2FA-Code wird ständig als falsch angezeigt, was soll ich tun?

Die häufigste Ursache ist, dass Server- und Telefonuhren nicht synchronisiert sind. Prüfen Sie die Zeit auf dem Server mit 'sudo timedatectl' und aktivieren Sie die NTP-Synchronisation. Verwenden Sie auch die Option 'Correct time sync' in der Google Authenticator-App.

Ist 2FA notwendig, wenn ich einen SSH-Schlüssel habe?

SSH-Schlüssel bieten starken Schutz, aber 2FA fügt eine zusätzliche Sicherheitsebene hinzu. Die SSH-Schlüssel + 2FA-Kombination wird besonders für kritische Systeme oder Compliance-Umgebungen empfohlen.

Kann ich eine andere App als Google Authenticator verwenden?

Ja. Jede TOTP-unterstützende App wie Authy, Microsoft Authenticator, 1Password oder Bitwarden funktioniert. Authy wird besonders empfohlen, da es Cloud-Backup und Multi-Gerät-Unterstützung bietet.

Sollte 2FA für alle Benutzer obligatorisch sein?

Es sollte für alle Benutzer mit kritischem Zugriff obligatorisch sein. SSH-Schlüssel können für Dienstkonten wie automatisierte Deploy-Skripte ausreichen. Sie können bestimmte Gruppen in der PAM-Konfiguration von 2FA ausnehmen.

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.

14 min
malwarerootkitrkhunter

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.

13 min
fail2banbrute-forcessh-sicherheit
NetzwerkverkehrEingehend GbpsAusgehend Gbps