Kapitel 3 · 3.2
Anmeldung mit Passwort und als root deaktivieren
Jeder Server im Internet bekommt schon nach kurzer Zeit Besuch von Programmen, die Passwörter erraten. Wenn Sie sich nur mit einem Schlüssel anmelden können, haben diese keine Chance. Das schalten Sie jetzt ein.
Hinweis: Funktioniert die Anmeldung mit Ihrem Schlüssel als anna (siehe Ein eigener Benutzer mit sudo)? Erstellen Sie dann zuerst einen Snapshot (siehe Snapshots: ein Sicherheitsnetz für jede größere Änderung) und lassen Sie während dieser Schritte eine Sitzung geöffnet. Geht doch etwas schief, gelangen Sie über die Konsole wieder hinein (siehe Die Konsole: Ihr VPS im Browser).
Eine eigene Konfigurationsdatei
Unter Debian und Ubuntu liest der SSH-Server zuerst die Dateien in /etc/ssh/sshd_config.d/, in alphabetischer Reihenfolge. Für jede Einstellung gilt der erste Wert, auf den er stößt. Ihre eigene Datei erhält deshalb einen Namen, der ganz vorne steht:
anna@web1:~$ sudo nano /etc/ssh/sshd_config.d/00-eigen.conf
Tragen Sie Folgendes ein:
PasswordAuthentication no
KbdInteractiveAuthentication no
PermitRootLogin no
PasswordAuthentication no: keine Passwörter mehr über SSH.KbdInteractiveAuthentication no: auch keine Passwortabfrage über einen Umweg.PermitRootLogin no: root darf sich nicht mehr über SSH anmelden, auch nicht mit einem Schlüssel. Sie arbeiten als anna mit sudo. Möchten Sie root weiterhin mit einem Schlüssel zulassen, verwenden Sie stattdessenprohibit-password.
Prüfen und anwenden
anna@web1:~$ sudo sshd -t
anna@web1:~$ sudo sshd -T | grep -Ei '^(passwordauthentication|kbdinteractiveauthentication|permitrootlogin)'
passwordauthentication no
kbdinteractiveauthentication no
permitrootlogin no
anna@web1:~$ sudo systemctl restart ssh
sshd -t gibt nichts aus, wenn die Datei korrekt ist. sshd -T zeigt, welche Werte tatsächlich gelten. Steht dort noch passwordauthentication yes? Dann schaltet eine andere Datei in sshd_config.d es wieder ein, oft 50-cloud-init.conf. Ihre 00-eigen.conf steht davor und gewinnt; prüfen Sie, ob der Name stimmt.
Unter AlmaLinux und Rocky Linux heißt der Dienst sshd: sudo systemctl restart sshd.
Testen, bevor Sie Ihre Sitzung schließen
Öffnen Sie ein neues Fenster und probieren Sie:
ssh anna@203.0.113.10
ssh -o PreferredAuthentications=password -o PubkeyAuthentication=no anna@203.0.113.10
anna@203.0.113.10: Permission denied (publickey).
ssh root@203.0.113.10
root@203.0.113.10: Permission denied (publickey).
Die erste Anmeldung muss funktionieren. Die beiden anderen müssen abgelehnt werden. Stimmt alles? Dann löschen Sie den Snapshot.
Tipp: Eine andere Portnummer als 22 sorgt für ein ruhigeres Protokoll, macht Ihren Server aber nicht sicherer. Die eigentliche Arbeit leistet der Schlüssel. Ändern Sie den Port trotzdem, öffnen Sie ihn zuerst in Ihrer Firewall (siehe Eine Firewall mit ufw (oder nftables)).
