SSH-ähnliche Sitzung, die eine physische Netzwerktrennung übersteht

SSH-ähnliche Sitzung, die eine physische Netzwerktrennung übersteht

Ich möchte, dass meine SSH-Anmeldesitzung bestehen bleibt, nachdem der Computer in den Ruhezustand wechselt und wieder aufwacht. Soweit ich weiß, kann TCP zeitweilige Netzwerkprobleme überstehen. Kann ich also die Einstellungen so ändern, dass es einige Stunden oder Tage übersteht? Wenn nicht, gibt es etwas Ähnliches wie SSH, das dies kann?

Ich verstehe, dass ich SSH so einrichten kann, dass die Verbindung automatisch wiederhergestellt wird, wenn das Netzwerk wieder verfügbar ist. Aber das ist nicht ideal, weil ich möchte, dass meine Anmeldesitzung genau an derselben Stelle ist, an der sie war, bevor der Laptop in den Ruhezustand wechselte (selbst wenn ich gerade etwas in die Shell-Befehlszeile eingebe).

Ich verstehe, dass es noch andere gibtProblemumgehungen, aber ich hatte gehofft, dass es eine Möglichkeit gibt, den Verlust der Shell-Sitzung von vornherein zu vermeiden.

Antwort1

Eine TCP-Verbindung sollte eine Trennung überstehen können, aber einige übereifrige Firewalls können inaktive Verbindungen trennen und eine Änderung Ihrer IP-Adresse (falls das überhaupt passieren kann) nicht überstehen.

Für interaktive Sitzungen würde ichMosh. Es implementiert eine SSH-ähnliche Terminalverbindung über UDP, unterstützt bei Bedarf die erneute Verbindung von einer anderen IP-Adresse und verfügt über einige Funktionen zur Unterstützung instabiler Verbindungen.

Unabhängig davon, ob Sie sich für SSH oder Mosh entscheiden, verwenden SieBildschirmodertmuxum Ihre Sitzung auch von der Verbindung unabhängig zu machen.

Antwort2

screenoder tmuxsind definitiv die beste Lösung. Die sshVerbindung wird dann nur noch zum Mittel zum Zweck und es spielt (im Rahmen des Zumutbaren) keine Rolle mehr, wie oft sie im Leerlauf abbricht.

Wenn es Ihnen nichts ausmacht, screenbei der Anmeldung beim Remote-Server daran denken zu müssen, zu starten, wäre es nicht so schwierig, eine interaktive Sitzung automatisch einer bestehenden beizutreten screenoder eine neue zu starten, wenn nicht bereits eine ausgeführt wird.

Antwort3

Steiniger Boden(Reliable sOCKetS) ist ein Wrapper für Programme, die TCP-Verbindungen zu Clients herstellen. Er erkennt, wenn die TCP-Verbindung fehlschlägt und stellt die Verbindung zum Client automatisch wieder her, selbst wenn dieser in ein anderes Netzwerk verschoben wird. Er wurde in dem Dokument beschriebenZuverlässige Netzwerkverbindungenund istzum Download verfügbar. Es wird nicht gewartet, verwendet aber ziemlich stabile Schnittstellen, sodass es auch heute noch funktionieren sollte. Es verwendet Bibliotheksvorladen ( LD_PRELOAD), um Standardbibliotheksfunktionen zu überschatten, sodass es nur mit dynamisch verknüpften ausführbaren Dateien funktioniert. Sie führen es einfach als

rocks ssh …

Rocks kümmert sich um die Client-Mobilität, nicht um die Server-Mobilität. Wenn der Server umzieht, möchten Sie es vielleicht mit einem ergänzenSOCKENProxy.

Für eine interaktive Sitzung ist eine gute AlternativeMosh. Es ist für unzuverlässige Verbindungen konzipiert und unterstützt die Client-Mobilität. Mosh verliert Daten, wenn die Verbindung unzuverlässig ist, daher ist es nur für interaktive Sitzungen verwendbar.

Eine Alternative zu Mosh, wenn Sie eine meist zuverlässige, aber gelegentlich wechselnde Verbindung haben, istautosshautomatisch wieder verbinden undBildschirmodertmuxwird auf dem Server ausgeführt. Die Screen/TMUX-Sitzung bleibt auf dem Server bestehen, auch wenn der Client die Verbindung trennt, und Autossh stellt die Verbindung automatisch wieder her, wenn die Verbindung unterbrochen wird.

verwandte Informationen