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?
MUO-Video des Tages Scrollen Sie, um mit dem Inhalt fortzufahren
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.
So fügen Sie Klassen zu Google Kalender hinzu
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.
So stoppen Sie die Verwendung von 100 Festplatten Windows 10
Sie können bei Bedarf auch das Escape-Zeichen ändern. Mit können Sie ein neues Escape-Zeichen angeben -Es ist 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
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 für ps bedeutet „Jeden Prozess auf dem System auflisten, unabhängig davon, wem er gehört oder ob er einen hat.“ Steuerterminal 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:
kill [PID]
Für bessere SSH-Verbindungen verwenden Sie Mosh!
Eine bessere Möglichkeit, lästige eingefrorene SSH-Sitzungen zu vermeiden, ist die Verwendung von Mosh . Wenn die Verbindung abbricht, sorgt Mosh dafür, dass Sie 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.
finde mein iphone sagt offline, aber das ist es nicht
Sie können auch einen Terminal-Multiplexer wie GNU Screen oder tmux verwenden, um Ihre SSH-Sitzung nach Verbindungsabbrüchen fortzusetzen 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.