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