SSH ist das Standardprotokoll für den Fernzugriff auf Linux-Server, doch allein mit einem Passwort oder einem privaten Schlüssel bleibt ein gewisses Sicherheitsrisiko bestehen. Mit Zwei-Faktor-Authentifizierung (2FA) lässt sich der SSH-Zugriff deutlich absichern. In dieser Anleitung richten wir 2FA mit Google Authenticator auf einem Ubuntu Server ein.
Voraussetzungen
- Ein Ubuntu Server (20.04, 22.04 oder neuer)
- Ein Benutzer mit sudo-Rechten
- SSH-Zugriff
Schritt 1: Installation von Google Authenticator
Google Authenticator ist eine Open-Source-App, die zeitbasierte Einmalpasswörter (TOTP) generiert.
sudo apt update && sudo apt install libpam-google-authenticator -y
Schritt 2: Google Authenticator konfigurieren
Führe den folgenden Befehl aus, um 2FA für deinen Benutzer einzurichten:
google-authenticator
Beantworte die Fragen wie folgt:
- «Do you want authentication tokens to be time-based?» → Y
- QR-Code scannen oder den Code in deine Authenticator-App (z. B. Google Authenticator oder Authy) eingeben.
- «Do you want me to update your .google_authenticator file?» → Y
- «Do you want to disallow multiple uses of the same authentication token?» → Y
- «Do you want to increase the time window?» → N
- «Do you want to enable rate-limiting?» → Y
Schritt 3: PAM-Modul für 2FA aktivieren
Bearbeite die PAM-Authentifizierungsdatei:
sudo nano /etc/pam.d/sshd
Füge diese Zeile am Ende der Datei hinzu:
auth required pam_google_authenticator.so
Speichern und schliessen mit STRG + X, Y, ENTER.
Schritt 4: SSH-Server für 2FA konfigurieren
Bearbeite die SSH-Konfigurationsdatei:
sudo nano /etc/ssh/sshd_config
Suche folgende Zeilen und stelle sicher, dass sie so gesetzt sind:
ChallengeResponseAuthentication yes UsePAM yes AuthenticationMethods publickey,password publickey,keyboard-interactive
Speichern und schliessen, dann den SSH-Dienst neu starten:
sudo systemctl restart sshd
Schritt 5: Testen der 2FA-Anmeldung
Öffne ein neues Terminal und versuche, dich per SSH einzuloggen:
ssh dein-user@dein-server
Nach der Passworteingabe wird nun ein Einmalpasswort aus der Authenticator-App abgefragt. Erst nach erfolgreicher Eingabe erhältst du Zugriff.
Fazit
Die Aktivierung von 2FA für SSH bietet eine zusätzliche Schutzebene gegen unbefugte Zugriffe. In Kombination mit Public-Key-Authentifizierung und einer Firewall kann dies die Sicherheit deines Ubuntu Servers erheblich verbessern.