SSH-Keys sind der Standard. Aber manchmal lässt es sich nicht vermeiden, dass ein Login nur mit Benutzername und Kennwort abgesichert ist. Um das aufzuwerten, lässt sich der SSH-Server mit einem zweiten Faktor ausstatten — hier mit dem Google Authenticator (TOTP) auf FreeBSD.
Installation
pkg install pam_google_authenticator
PAM-Konfiguration
In /etc/pam.d/sshd das Google Authenticator PAM-Modul als zweiten required-Eintrag nach pam_unix einfügen:
# # PAM configuration for the "sshd" service # # auth auth required pam_unix.so no_warn try_first_pass auth required /usr/local/lib/pam_google_authenticator.so # account account required pam_nologin.so account required pam_login_access.so account required pam_unix.so # session session required pam_permit.so # password password required pam_unix.so no_warn try_first_pass
Die Reihenfolge ist wichtig: Erst das Kennwort (pam_unix), dann der TOTP-Code. Auf dem gleichen Weg lässt sich MFA auch für su, den Konsolen-Login oder SSH-Keys einrichten — einfach das entsprechende PAM-File anpassen.
sshd_config anpassen
In /etc/ssh/sshd_config muss Challenge-Response aktiviert sein:
# Seit OpenSSH 8.7 heißt die Option KbdInteractiveAuthentication # ChallengeResponseAuthentication ist ein Alias und funktioniert weiterhin KbdInteractiveAuthentication yes
Danach service sshd restart — aber vorher sicherstellen, dass man noch eine offene Session hat, falls etwas nicht stimmt.
Authenticator einrichten
Auf dem Smartphone den Google Authenticator installieren (oder eine andere TOTP-App wie Aegis, 2FAS oder den Microsoft Authenticator). Dann auf dem Server mit dem gewünschten Benutzer google-authenticator aufrufen:
cd ~ google-authenticator
Das Tool zeigt einen QR-Code im Terminal, den man mit der Authenticator-App scannt:
Danach den angezeigten Code einmal eingeben — fertig. Bei jedem Kennwort-Login wird jetzt zusätzlich der aktuelle TOTP-Code abgefragt.
Wichtig: Das Tool zeigt auch Backup-Codes an. Diese unbedingt sicher aufbewahren — wenn das Smartphone verloren geht, kommt man sonst nicht mehr rein. Die Konfiguration liegt in ~/.google_authenticator und kann dort auch nachträglich eingesehen werden.
Siehe auch: FreeBSD OpenSSH: OS-Banner sicher entfernen, SSH-Bruteforce, DigitalOcean und AbuseIPDB – warum Blocken das Problem nicht löst
Unter Linux ist die Einrichtung sehr ähnlich — das PAM-Modul heißt dort libpam-google-authenticator. Fragen? Einfach melden.

@kernel-error.de weiß jemand, ob die App pam_google_authenticator ohne Funken Richtung Google auskommt.?
Remote-Antwort
Ursprüngliche Kommentar-URL
Dein Profil
Warum muss ich mein Profil eingeben?
Diese Website ist Teil des ⁂ Open Social Web, einem Netzwerk miteinander verbundener sozialer Plattformen (wie beispielsweise Mastodon, Pixelfed, Friendica und andere). Im Gegensatz zu zentralisierten sozialen Medien befindet sich dein Profil auf einer Plattform deiner Wahl, und du kannst mit Menschen auf verschiedenen Plattformen interagieren.
Wenn du dein Profil eingibst, können wir an dein Profil senden, wo du diese Aktion abschließen kannst.
Ja, komplett offline. pam_google_authenticator baut keinerlei Verbindung zu Google auf. Das Secret wird lokal erzeugt (~/.google_authenticator), der TOTP-Code rein lokal berechnet (RFC 6238). „Google“ ist nur der Name, das PAM-Modul ist Open Source: github.com/google/google-authenticator-libpam
Du kannst auch jede andere TOTP-App nutzen, z.B. Aegis oder FreeOTP. Wer generell weg von Google-Abhängigkeiten will, findet auf di.day gute Wechselanleitungen.