Die vier Einstellungen, die zählen
Wenn du nur zehn Minuten hast, sind es diese. Sie erledigen den Großteil dessen, was täglich gegen deinen Server läuft.
PasswordAuthentication no # keine Passwörter mehr
KbdInteractiveAuthentication no # auch nicht über den Umweg
PermitRootLogin no # root nie direkt
AllowGroups ssh-nutzer # nur wer hier drin istEin Drop-in unter sshd_config.d/ überlebt Paketaktualisierungen. Die Hauptdatei wird bei Upgrades ersetzt, deine Änderungen dort wären dann weg.
- PasswordAuthentication noDamit sind sämtliche Brute-Force-Versuche erledigt, unabhängig davon, wie gut das Passwort war. Voraussetzung: Dein Schlüssel liegt vorher in authorized_keys und du hast die Anmeldung getestet.
- KbdInteractiveAuthentication noOhne diese Zeile bleibt bei manchen Distributionen ein zweiter Weg zur Passwortabfrage offen, über PAM. Die Abschaltung der ersten Option allein genügt also nicht.
- PermitRootLogin noroot ist der einzige Kontoname, den jeder Angreifer kennt. Administration läuft über ein persönliches Konto plus sudo, nur so ist im Nachhinein nachvollziehbar, wer was getan hat.
- AllowGroups statt AllowUsersEine Gruppe pflegst du an einer Stelle, eine Benutzerliste in der Konfiguration jedes Servers. Ab dem zweiten Host ist die Gruppe die einzige Variante, die auf Dauer gepflegt wird.
sudo groupadd -f ssh-nutzer
sudo usermod -aG ssh-nutzer $USER
sudo sshd -t # Syntaxprüfung, IMMER zuerst
sudo systemctl reload ssh # Debian/Ubuntu
sudo systemctl reload sshd # RHEL/Rocky/Alma
# In einem NEUEN Terminal testen, altes offen lassen
ssh -v $USER@serversshd -t fängt genau die Tippfehler ab, die dich sonst aussperren. Ein reload statt restart lässt bestehende Sitzungen am Leben.