SSH-Root-Login deaktivieren
Bitte verwenden sie die "Drucken" Funktion am Seitenende, um ein PDF zu erstellen.
Für Cloud Server, VPS, Dedicated Server und Bare Metal Server
In diesem Artikel erfahren Sie, wie Sie den Root-Login deaktivieren.
Standardmäßig wird auf jedem Linux-System das Root-Konto als erstes Konto angelegt. Das Root-Konto verfügt über die höchsten Rechte. Mit dem Root-Konto haben Sie Zugriff auf alle Befehle und Dateien und verfügen über volle Lese-, Schreib- und Ausführungsrechte. Wenn dieses Konto unsachgemäß oder unangemessen verwendet wird, kann dies erhebliche Auswirkungen auf Ihren Server haben.
Vorsicht
Stellen Sie vor der Deaktivierung des SSH-Root-Logins sicher, dass ein alternativer Benutzer mit sudo-Rechten existiert und Sie sich mit diesem erfolgreich per SSH verbinden können. Andernfalls verlieren Sie den administrativen Zugriff auf Ihren Server!
So deaktivieren Sie den SSH-Root-Login:
Erstellen Sie ein Backup der Konfiguration. Geben Sie hierzu den folgenden Befehl ein:
cp -a /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
Öffnen Sie die SSH-Konfigurationsdatei sshd_config mit dem Texteditor vi:
vi /etc/ssh/sshd_config
Hinweis
Der Editor vi verfügt über einen Einfügemodus und einen Befehls- oder Kommandomodus. Den Einfügemodus können Sie mit der Taste [i] aufrufen. In diesem Modus werden die eingegebenen Zeichen sofort in den Text eingefügt. Um den Befehlsmodus aufzurufen, drücken Sie anschließend [ESC]. Wenn Sie den Befehlsmodus nutzen, werden Ihre Tastatureingaben als Befehl interpretiert.Suchen Sie die Zeile PermitRootLogin und stellen Sie sicher, dass diese wie folgt aussieht (ändern Sie yes oder prohibit-password zu no):
PermitRootLogin no
Stellen Sie sicher, das diese Direktive nicht mehrfach vorkommt. Entfernen Sie ggf. doppelte Einträge.
Um vi zu beenden und die Datei zu speichern, geben Sie im Befehlsmodus den folgenden Befehl ein und drücken Sie anschließend Enter:
:wq
Auf vielen Systemen können Drop-in-Dateien in /etc/ssh/sshd_config.d/.conf Werte überschreiben. Um diese zu prüfen, geben Sie den folgenden Befehl ein:
grep -nH "PermitRootLogin" /etc/ssh/sshd_config /etc/ssh/sshd_config.d/.conf 2>/dev/null
Bevor Sie den Dienst neu starten, überprüfen Sie die Konfigurationsdatei auf Syntaxfehler. Geben Sie hierzu den folgenden Befehl ein:
sshd -t
Wenn keine Information ausgegeben wird, bedeutet dies, dass kein Syntaxfehler vorliegt.
Damit die Änderung wirksam wird, starten Sie den SSH-Dienst neu. Wählen Sie dazu den passenden Befehl für Ihr Betriebssystem:
Ubuntu 22.04, Ubuntu 24.04, Debian 11 und Debian 12 und Debian 13
systemctl restart ssh
Rocky Linux 8, 9, und 10 sowie AlmaLinux 8, 9 und 10
systemctl restart sshd
Um zu prüfen, ob die Änderungen wirksam sind, geben Sie den folgenden Befehl ein:
sshd -T | grep -i permitrootlogin
Hilfe im Problemfall
Um die gesicherte Konfiguration wiederherzustellen, geben Sie die folgenden Befehle ein:
Ubuntu 22.04, Ubuntu 24.04, Debian 11, Debian 12 und Debian 13
cp -a /etc/ssh/sshd_config.bak /etc/ssh/sshd_config
sshd -t && systemctl reload ssh
Rocky Linux 8, 9 und 10 sowie AlmaLinux 8, 9 und 10
cp -a /etc/ssh/sshd_config.bak /etc/ssh/sshd_config
sshd -t && systemctl reload sshd