SSH-Sitzungen in xterms frieren viele Minuten lang ein, wenn die Verbindung getrennt wird

7

Wenn ich auf einen Remotecomputer ssh und dann die Internetverbindung verliere, friert die Sitzung ein. Ich kann-c nicht steuern oder auf andere Weise abbrechen und zu meiner lokalen xterm- oder Terminal-Eingabeaufforderung zurückkehren, aber wenn ich einige Minuten warte, wird dies der Fall sein. Es muss eine Möglichkeit geben, die Remote-SSH-Sitzung abzubrechen, wenn die Verbindung unterbrochen wird. Ich bin auf einem Mac, aber ich glaube, dass dies auch unter Cygwin oder Linux passiert.

Dreeves
quelle
Genial! Froh, dass ich helfen konnte.
James T

Antworten:

10

Die Tilda-Periode sollte tun, was Sie wollen ( ~.). Es muss das erste sein, was nach dem Drücken der Eingabetaste eingegeben wird. Drücken Sie also die Eingabetaste und geben Sie es dann ein. Hier ist der manuelle Eintrag für ssh:

 -e escape_char
         Sets the escape character for sessions with a pty (default: ‘~’).
         The escape character is only recognized at the beginning of a
         line.  The escape character followed by a dot (‘.’) closes the
         connection; followed by control-Z suspends the connection; and
         followed by itself sends the escape character once.  Setting the
         character to “none” disables any escapes and makes the session
         fully transparent.

Strg-D könnte auch funktionieren.

Bearbeiten: In SSH sind viele Escape-Zeichenbefehle integriert. Wenn eine aktive SSH-Sitzung geöffnet ist, können Sie [Enter] ~ drücken. um eine Liste der Optionen anzuzeigen. Dies ist alles im Mann Eintrag für ssh. Wenn Sie noch nichts über Manneinträge wissen ... werden Sie eine Welt der Erstaunlichkeit entdecken! Geben Sie im Linux-Terminal "man command" ein, in diesem Fall "man ssh" ohne Anführungszeichen. Es hat viele Informationen. Drücken Sie "q", um den Vorgang zu beenden. Sie können auch "info ssh" eingeben, wenn Ihnen die Info-Oberfläche besser gefällt.

James T.
quelle
[eingeben] ~. klappt wunderbar! Vielen Dank! Ich kann nicht glauben, dass ich diesen Trick erst jetzt gelernt habe. Dies ist buchstäblich seit Jahren ein Ärger. Interessanterweise funktioniert es nur, wenn die Verbindung unterbrochen wurde und das Terminal eingefroren ist. Wenn es den Unterschied erkennen kann, warum kann es dies nicht einfach automatisch tun, wenn die Verbindung unterbrochen wird?
Dreeves
Das ist seltsam, dass es nur funktioniert, wenn Ihre Verbindung unterbrochen wurde. Was mich die ganze Zeit bringt, ist zu vergessen, zuerst die Eingabetaste zu drücken. Wenn Sie wieder etwas eingeben und die Rücktaste zum Anfang zurücksetzen ... dann ~. wird nicht funktionieren. Ich gehe davon aus, dass es Möglichkeiten gibt, das Verbindungszeitlimit zu ändern. Ich gehe davon aus, dass das lange Timeout so geschrieben wurde, dass Verbindungsverzögerungen zwischen alten Modems die Sitzung nicht immer beenden. Ich habe der Lösung weitere Dinge hinzugefügt, die Sie vielleicht interessant finden.
James T
Ich lag falsch! Es funktioniert unabhängig davon, ob die Verbindung unterbrochen wurde. Nochmals vielen Dank, James. Ich schulde dir viel Zeit.
Dreeves
Wie installiere ich ssc unter Ubuntu? apt-get zeigt nichts an und ssc ist ein so allgemeiner Satz von Initialen, dass mein Googeln nichts Relevantes ergibt.
Sridhar Sarnobat
Hoppla, ich habe diesen Kommentar auf der falschen Seite gepostet. Ich sollte es hier posten : stackoverflow.com/questions/474967/… , aber selbst das habe ich falsch verstanden. sscist das, was ein Individuum geschaffen hat, es ist kein bekanntes Werkzeug, von dem ich dachte, dass es es ist.
Sridhar Sarnobat
2

Etwas hält die Verbindung offen, wahrscheinlich durch eine Art Weiterleitung. Sie können versuchen, Ctrl\ssh zum Sterben zu zwingen, aber im Allgemeinen sollten Sie versuchen, herauszufinden, was es aufkeilt.

Ignacio Vazquez-Abrams
quelle
Strg- \ ist auf dem Mac nicht SIGQUIT zugeordnet.
Spiff