Das Neustarten von SSH unter Ubuntu ist ein einfacher Befehl. Das Problem ist, dass er oft genau den Dienst beeinträchtigt, der den Zugriff auf den Server ermöglicht.
Auf einem lokalen Rechner ist das Risiko gering. Auf einem VPS oder Remote-Server überprüfe ich lieber ein paar Dinge, bevor ich auf Enter drücke. Eine fehlerhafte Konfiguration, ein vergessener Port in der Firewall oder eine Verwechslung zwischen ssh Und sshdUnd dann müssen Sie sich möglicherweise nach einer Ersatzkonsole umsehen.

Der Befehl zum Neustart von SSH unter Ubuntu
Unter Ubuntu und Debian heißt der serverseitige OpenSSH-Dienst üblicherweise so: sshDer direkteste Befehl lautet daher:
sudo systemctl restart ssh
Überprüfen Sie unmittelbar danach, ob der Dienst wieder aktiv ist:
sudo systemctl status ssh --no-pager
Sie können auch eine kürzere Prüfung durchführen, was in einem Skript oder einer kurzen Sitzung praktisch ist:
systemctl is-active ssh
Wenn die Antwort lautet aktivDer Dienst läuft. Wenn Sie erhalten fehlgeschlagen, inaktiv Sollte ein Fehler auftreten, dass eine Einheit nicht gefunden wurde, schließen Sie Ihre aktuelle Sitzung nicht, bevor Sie die Ursache kennen.
Überprüfen Sie die Konfiguration, bevor Sie den Dienst herunterfahren.
Wenn Sie geändert haben /etc/ssh/sshd_configZuerst sollte die Konfiguration getestet werden. Dies ist eine Überprüfung, die ich immer vor einem Remote-SSH-Neustart durchführe:
sudo /usr/sbin/sshd -t
Wenn der Befehl keine Ausgabe liefert, ist das ein gutes Zeichen. Falls ein Fehler angezeigt wird, korrigieren Sie die Datei, bevor Sie SSH neu starten. Für einen expliziten Test der Hauptdatei:
sudo /usr/sbin/sshd -t -f /etc/ssh/sshd_config
Dieser Test garantiert zwar nicht, dass Ihre Firewall oder Ihr Cloud-Anbieter den SSH-Port unterstützt, verhindert aber, dass Sie einen Daemon mit einer ungültigen Konfiguration neu starten. Er ist einfach, schnell und erspart Ihnen Eingriffe über die Kommandozeile.
Neustart oder Neuladen: Was ist die richtige Wahl?
Um eine SSH-Konfigurationsänderung anzuwenden, ist nicht immer ein vollständiger Neustart erforderlich. Wenn der Dienst dies zulässt, ist ein Neuladen weniger störend:
sudo systemctl reload ssh
In der Praxis verwende ich neu laden für eine saubere Konfigurationsänderung, nach einem sshd -t Bestätigt. Ich nutze neu starten wenn der Dienst blockiert ist, nach einem OpenSSH-Update oder wenn ich von einem sauberen Zustand neu beginnen möchte.
Um herauszufinden, was systemd über Ihren Rechner weiß, ist dieser Befehl hilfreich:
systemctl list-unit-files 'ssh*'
In einigen Einrichtungen könnten Sie auch antreffen ssh.socketPrüfen Sie in diesem Fall den Zustand, bevor Sie irgendetwas berühren:
sudo systemctl status ssh.socket --no-pager
Um die systemd-Befehle zu verstehen, ohne service, reload und restart zu verwechseln, können Sie auch unsere Anleitung zu diesem Thema erneut lesen. Nützliche systemctl-Befehle vor einem zufälligen Neustart.
Überprüfen Sie, ob der SSH-Port noch aktiv ist.
Der Dienst ist möglicherweise aktiv, aber SSH lauscht unter Umständen auf einem anderen Port als dem, den Sie verwenden. Auf einem typischen Ubuntu-System ist der Port oft der zweiundzwanzigDies ist jedoch keine absolute Regel.
Um zu überprüfen, welche Ports aktiv sind:
sudo ss -ltnp | grep ':22'
Wenn Sie den Port in der SSH-Konfiguration geändert haben, fragen Sie OpenSSH, welcher Port tatsächlich angewendet wird:
sudo /usr/sbin/sshd -T | grep '^port'
Um tiefer in dieses Thema einzutauchen, lesen Sie den Artikel über netstat, ss und offene Ports unter Linux bietet eine umfassendere Methode.
Berücksichtigen Sie auch Ihre lokale Firewall. Mit UFW erfolgt die Verifizierung sofort:
sudo ufw status verbose
Wenn SSH auf Port 2222 lauscht, die Firewall aber nur Port 22 zulässt, kann der Dienst zwar voll funktionsfähig, aber von außen nicht erreichbar sein. Dasselbe gilt, wenn Ihr Hosting-Anbieter eine Firewall oder Sicherheitsgruppe vor dem Server einsetzt.
Prüfen Sie die Protokolle, falls der Neustart fehlschlägt.
Wenn systemctl status ssh weist auf einen Fehler hin; beginnen Sie mit der Überprüfung der Dienstprotokolle:
sudo journalctl -u ssh -b --no-pager | size -50
Sie können die Live-Nachrichten auch während eines Wiederholungsversuchs verfolgen:
sudo journalctl -u ssh -f
Die häufigsten Fehler sind ziemlich offensichtlich: unbekannte Option in sshd_configPort wird bereits verwendet, Host-Schlüssel fehlt, falsche Dateiberechtigung oder Direktive an der falschen Stelle platziert.
Wenn Sie Ihre Netzwerkabdeckung nach einer Netzwerkänderung oder einem Serverneustart erweitern müssen, finden Sie die Anleitung unter journalctl und die Protokolle des letzten Linux-Starts wird Ihnen dabei helfen, Fehler zu sortieren, ohne das gesamte Systemprotokoll lesen zu müssen.
Vorsichtsmaßnahmen für die Übernahme eines Remote-Servers
Wenn Sie per SSH mit dem Rechner verbunden sind, den Sie ändern möchten, lassen Sie Ihre Sitzung geöffnet. Öffnen Sie gegebenenfalls eine zweite Sitzung, bevor der Dienst neu gestartet wird:
ssh Benutzer@Serveradresse
Versuchen Sie nach dem Neustart, eine neue Verbindung von einem anderen Terminal aus herzustellen. Wenn die neue Verbindung funktioniert, können Sie die alte schließen. Falls auch diese fehlschlägt, kann Ihnen die alte Sitzung möglicherweise noch weiterhelfen.
Prüfen Sie auf einem Produktionsserver außerdem, ob Sie eine Backup-Konsole bei Ihrem Hosting-Anbieter eingerichtet haben. Dies ist besonders wichtig, wenn Sie gleichzeitig den SSH-Port, UFW, eine statische IP-Adresse oder die Netzwerkkonfiguration ändern. Weitere Informationen finden Sie im Artikel unter [Link einfügen]. die feste IP-Adresse unter Debian führt zu denselben vorsichtigen Reaktionen auf Netzwerkseite.
Wann sollte man OpenSSH neu installieren, anstatt neu zu starten?
Ein Neustart genügt, wenn der Dienst installiert ist, die Konfiguration gültig ist und das Problem nur vorübergehend auftritt. Wenn jedoch die Einheit ssh.service Existiert nicht, wenn das OpenSSH-Serverpaket fehlt oder der Server etwas zu gründlich bereinigt wurde, müssen Sie die Installation erneut starten.
In diesem Fall sollten keine Neustarts in einer Schleife erzwungen werden. Überprüfen Sie zuerst das Paket:
dpkg -l | grep openssh-server
Falls keine Meldung erfolgt, wiederholen Sie das entsprechende Verfahren: SSH unter Ubuntu sauber neu installierenEinen Dienst neu zu starten, der nicht läuft, löst kein Problem.
Meine Schnellmethode vor der Validierung
Quand je dois toucher SSH sur Ubuntu, je fais simple : test de configuration, reload si possible, restart si nécessaire, puis vérification du port, du pare-feu et d’une nouvelle connexion.
sudo /usr/sbin/sshd -t
sudo systemctl reload ssh
sudo systemctl status ssh --no-pager
sudo ss -ltnp | grep ':22'
sudo ufw status verbose
Wenn Sie remote arbeiten, schließen Sie die aktive Sitzung erst, nachdem eine neue SSH-Verbindung getestet wurde. Dies ist vielleicht der unspektakulärste Tipp im Artikel, aber er verhindert die unangenehmsten Überraschungen.
Die offiziellen Ubuntu-Seiten auf OpenSSHServer, Dokumentation systemctldie Manpages sshd Und sshd_configsowie die Dokumentation UFWDies sind gute Ausgangspunkte, wenn Sie eine Serverprozedur dokumentieren müssen.