Wie man eine nicht reagierende SSH-Sitzung auf Linux beendet

Wie man eine nicht reagierende SSH-Sitzung auf Linux beendet

Möglicherweise geben Sie in einer Remote-SSH-Sitzung etwas ein, und plötzlich passiert nichts. Das System scheint nicht auf Ihre Tastenanschläge zu reagieren. Was machst du?

Hier erfahren Sie, warum es passiert, wie Sie eine nicht reagierende SSH-Sitzung beenden und warum Sie möglicherweise zu Mosh wechseln möchten.

Was führt zum Einfrieren von SSH-Sitzungen?

Der Hauptgrund für das Einfrieren von SSH-Sitzungen ist die Unterbrechung der Netzwerkverbindung. Die WLAN-Signale können unterbrochen werden, oder Sie lassen Ihren Computer in den Ruhezustand wechseln. Dies ist am häufigsten bei Laptops der Fall. Möglicherweise schließen Sie den Laptopdeckel und vergessen dabei, dass Sie noch über SSH angemeldet sind.

SSH wurde ursprünglich in einer Zeit entwickelt, bevor Menschen routinemäßig Laptops verwendeten. SSH funktioniert besser über kabelgebundene Netzwerke.

1. Beenden Sie mit einer Escape-Sequenz

Wenn Ihre SSH-Sitzung einfriert, versuchen Sie es mit einer Escape-Sequenz. Mit einer Escape-Sequenz können Sie Signale an den SSH-Client statt an den Remote-Computer senden. Escape-Sequenzen wird ein Escape-Zeichen vorangestellt. Standardmäßig ist es auf dem OpenSSH-Client das Tilde (~) Charakter.

Um den SSH-Client zu beenden, können Sie die Tilde-Taste und dann die drücken Zeitraum (.) Schlüssel.

Sie können bei Bedarf auch das Escape-Zeichen ändern. Sie können mit dem ein neues Escape-Zeichen angeben -e Option in der Befehlszeile. Sie können es auch dauerhaft ändern, indem Sie das festlegen EscapeChar Option in Ihrem .ssh/config Datei in Ihrem Home-Verzeichnis auf dem lokalen Computer.

2. Verwenden des kill-Befehls

Suche nach einer SSH-Sitzung mit ps und grep

Wenn die Verwendung einer Escape-Sequenz nicht funktioniert, können Sie versuchen, den SSH-Client zu beenden. Um die Prozess-ID (PID) Ihrer Sitzung zu ermitteln, leiten Sie den Befehl ps über grep weiter:

ps aux | grep ssh

Das „aux“-Argument von ps bedeutet „Jeden Prozess im System auflisten, unabhängig davon, wem er gehört oder ob er über ein steuerndes Terminal verfügt oder nicht.“

Wenn Sie mehrere Sitzungen haben, können Sie die eingefrorene Sitzung auswählen, da in der Liste der Benutzername und die Adresse auf dem Remote-Computer angezeigt werden, bei dem die SSH-Sitzungen angemeldet sind. Sobald Sie die PID Ihrer Sitzung gefunden haben, können Sie sie mit dem Kill-Befehl beenden:

töten [PID]

Für bessere SSH-Verbindungen verwenden Sie Mosh!

Remote-Vim-Sitzung unter Mosh mit getrennter Netzwerkverbindung

Eine bessere Möglichkeit, störende eingefrorene SSH-Sitzungen zu vermeiden, ist die Verwendung von Mosh. Wenn die Verbindung abbricht, können Sie mit Mosh in Verbindung bleiben. Es werden alle Nachrichten gesendet, wenn Sie die Verbindung wiederherstellen. Es funktioniert auch, wenn Sie Ihr Gerät in den Ruhezustand versetzen.

Sie können auch einen Terminal-Multiplexer wie GNU Screen oder tmux verwenden, um Ihre SSH-Sitzung nach Verbindungsabbrüchen fortzusetzen, aber Mosh und tmux sind noch leistungsfähiger, wenn sie zusammen verwendet werden.

So installieren Sie Mosh unter Debian und Ubuntu:

Sudo apt install mosh

Und auf Arch Linux:

sudo pacman -S mosh

Zur Red Hat-Distributionsfamilie:

sudo dnf install mosh

Jetzt können Sie feststeckende SSH-Sitzungen loswerden

Nicht reagierende SSH-Sitzungen können frustrierend sein, aber Sie können sie mit einer Escape-Sequenz oder dem Kill-Befehl beseitigen. Mosh ist ein noch besserer Ersatz, der Ihre Verbindung auch bei Verbindungsabbrüchen und Systemschlafphasen aufrechterhält.

Unterstützen Sie unsere Arbeit ❤️

Wenn Ihnen dieser Artikel gefallen hat, können Sie uns mit einem Trinkgeld unterstützen, damit wir weiterhin großartige Inhalte veröffentlichen können.

Sichere Zahlung mit PayPal
Siehe auch:  Musk deutet SpaceX-Tesla Fusion nach xAI-Zusammenarbeit an