Term nach SSH-Trennung ohne Multiplexer wieder aufnehmen (Bildschirm / TMux)

1041
Peter Gerdes

Screen und tmux (wie auch emacs) sind einfallsreiche, funktionsreiche Terminalmultiplexer, die die effiziente Verwaltung von Terminals wie 1985 ermöglichen. Sie machen jedoch die einfache Aufgabe, eine SSH-Sitzung wieder aufzunehmen, bei der Sie nach dem Wechseln von Netzwerken usw. aufgehört haben.

Ich benutze tmux, wenn ich es brauche, aber normalerweise habe ich keine Verwendung für geteilte Fenster, mehrere Fenster, Sitzungen usw. ... Ich möchte auf keinen Fall die lästigen Auswirkungen des Messings mit dem Terminal

Alles, was ich will (und ein halbes Dutzend anderer Leute auf dieser Site, die nicht genug wissen, um klar zu machen, dass sie kein Tmux wollen), ist ein ssh-Wrapper / Klon, der nach Trennen der Verbindung (Wiederverbindungen auf Tastendruck) und a weiter läuft sshd wrapper / clone, der die gesamte Ausgabe beim Trennen der Verbindung puffert und beim Wiederverbinden streamt .

Das nächste, was ich gesehen habe, ist Mosh, aber wie ist das schwer? In jeder ssh-Verbindung muss eine eindeutige ID vorhanden sein (wenn nichts anderes einen Hash des Session-Schlüssels verwendet), und das TCP-Protokoll bedeutet, dass sshd / ssh (oder die von ihnen verwendeten Kernel-Puffer) jedes vor ssh gesendete ungepackte Paket aufbewahren müssen / sshd entscheidet, dass die Verbindung das Zeitlimit überschritten hat. Nach dem Timeout kann sshd einfach den Inhalt der nicht geprüften Pakete und alle neuen an den Term gesendeten Daten speichern und an den Client streamen, der sich mit der entsprechenden ID verbindet.

Ist es plausibel (oder gibt es bereits eine solche Option), ssh eine Option / einen Wrapper mit diesem Verhalten (wie auch immer es implementiert ist) hinzuzufügen? Sicher, es würde nicht mit ausgefallenen Situationen wie einem Benutzer umgehen, der den Begriff zwischen Zeitüberschreitung und Wiederverbindung ändert, aber es würde die eine Sache tun, die jeder möchte, dass ich mich mit einer früheren SSH-Sitzung verbinden kann, ohne das Zurückblättern, den Verlauf usw. zu beeinträchtigen.

3
Was ist los mit Mosh? Ich benutze es seit einiger Zeit und hatte erfolgreich Sitzungen, die seit Wochen andauerten. skarface vor 10 Jahren 0
Es klingt wie tmux, screen oder byobi genau das, was Sie brauchen. Wenn Sie nicht alle anderen Funktionen nutzen möchten, verwenden Sie sie nicht. Ich weiß nicht, welche nervigen Termeffekte Sie sehen, aber Sie brauchen 30 Minuten, um sie zu reparieren, und dann haben Sie genau das richtige Werkzeug für den Job. IMHO, YMMV. Joe Casadonte vor 10 Jahren 0
Mosh verlangt, dass ich eine ssh-Verbindung in umgekehrter Richtung öffne. Das ist nicht immer praktisch oder erlaubt. Tmux / Screen versucht, das Terminal für Sie zu verwalten, sodass Sie keinen Standard-Scrollback verwenden können, um zu sehen, was passiert ist. Schauen Sie sich alle Hacks für Apps wie weniger an, die versuchen, den Begriff nach dem Beenden nicht zu verschmutzen ... Keiner von ihnen funktioniert in allen Fällen wirklich gut. Ich möchte, dass meine verdammte Scrollbar auf dem CLIENT-System funktioniert. Ich möchte nicht, dass der SERVER die Terminalverantwortlichkeiten des Clients übernimmt. Der Server sollte so dumm wie möglich sein Peter Gerdes vor 10 Jahren 0
Genau. Der Hauptnachteil von Multiplexern liegt für mich im Umgang mit dem Scrollback. Eines Tages werde ich wahrscheinlich die Scrollback-Tasten in tmux speichern, aber es ist nach jeder Definition ein Pseudo-Scrollback, und es ist ein Ärgernis. Ich verwende tmux nur, wenn ich eine lange laufende Aufgabe starten muss, die ich mir nicht leisten kann, unterbrochen zu haben, und bei der ich DGAS über den Scrollback habe. Ich möchte in der Lage sein, nach unten zu scrollen (oder ein Mausrad zu drehen), um meinen Scrollback anzuzeigen, und keine Voodoo-Tastatureingaben einzugeben (und ich verwende Emacs, daher bin ich mit Voodoo-Tastatureingaben vertraut). Leider glaube ich nicht, dass es so ein Biest gibt. anastrophe vor 10 Jahren 0
@anastrophe, Scrollback wird in tmux gut mit der Maus aufgerufen, es muss nur richtig konfiguriert werden (korrektes Terminal und eine einzelne Zeile in der Konfiguration mit einem eindeutigen Namen). Als Bonus erhalten Sie einen Scrollback von überall, an dem Sie sich mit der Sitzung verbinden. unkulunkulu vor 9 Jahren 0

0 Antworten auf die Frage