Für VPS+, VPS, Cloud Server, Dedicated Server und Bare Metal Server mit AlmaLinux 9, AlmaLinux 10, Rocky Linux 9, Rocky Linux 10, Ubuntu 24.04, Ubuntu 26.04, Debian 12 und Debian 13

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!

Voraussetzungen

Sie haben bereits einen zusätzlichen Benutzer mit sudo-Rechten erstellt und geprüft, ob dieser sich per SSH anmelden kann.
 

So deaktivieren Sie den SSH-Root-Login:

  • Loggen Sie sich als Benutzer mit sudo-Rechten auf Ihrem Server ein.

  • Erstellen Sie ein Backup der Konfiguration. Geben Sie hierzu den folgenden Befehl ein: 

    sudo cp -a /etc/ssh/sshd_config /etc/ssh/sshd_config.bak

  • Öffnen Sie die SSH-Konfigurationsdatei sshd_config mit dem Texteditor vi:

    sudo 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 nach der Zeile: PermitRootLogin yes (oder PermitRootLogin yes)

    PermitRootLogin no

  • Ändern Sie den Eintrag zu PermitRootLogin no und stellen Sie sicher, dass am Anfang der Zeile kein Kommentarzeichen (#) steht.

  • Stellen Sie sicher, dass 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 die Eingabetaste:

    :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 24.04, Ubuntu 26.04, und Debian 12 und Debian 13

    systemctl restart ssh

    Rocky Linux 9, und 10 sowie AlmaLinux 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 24.04, Ubuntu 26.04,  Debian 12 und Debian 13

sudo cp -a /etc/ssh/sshd_config.bak /etc/ssh/sshd_config
sudo sshd -t && systemctl reload ssh

Rocky Linux 9 und 10 sowie AlmaLinux 9 und 10

sudo cp -a /etc/ssh/sshd_config.bak /etc/ssh/sshd_config
sudo sshd -t && systemctl reload sshd