Halten Sie die SSH-Verbindung lebendig und dauerhaft, während Sie die Netzwerkschnittstellenverbindungen wechseln


13

Szenario:

  1. An meinem Schreibtisch mit Laptop an Ethernet angeschlossen und über SSH mit dem Remote-Server verbunden
  2. Sie möchten mit einem Laptop auf die andere Seite des Büros wechseln und auf WLAN umsteigen, ohne die SSH-Verbindung zu unterbrechen

Ich habe versucht: erst eine Verbindung zum WiFi herstellen, dann das Ethernet trennen; und auch Ethernet zuerst trennen, dann eine Verbindung zu WiFi herstellen. Keiner der Ansätze funktioniert. Auch versucht, wenn Ubuntu und OS X-Server zusammen mit beiden Betriebssystemoptionen als auch für den Client verwendet werden. Kein Glück.

Anscheinend muss ich meiner SSH-Verbindung mitteilen, dass sie die neu verbundene Netzwerkschnittstelle anstelle der alten nicht verbundenen Schnittstelle verwenden soll. Irgendwelche Ideen?

Mir ist klar, dass ich einfach den ganzen Tag im WiFi bleiben kann, aber das möchte ich nicht. Mir ist auch klar, dass ich einfach von einer Bildschirmsitzung auf dem Remote-Server aus arbeiten und dann nach dem Ändern der Benutzeroberfläche eine neue Verbindung zu dieser Bildschirmsitzung herstellen kann, aber ich möchte das auch nicht. Zum Beispiel könnte ich einen großen Befehl wie einen Datenbank-Dump über SSH leiten oder Dateien über SSHFS öffnen, oder ich möchte nur das lästige Wiederherstellen einer Verbindung vermeiden


3
Wenn Sie in beide Richtungen dieselbe IP-Adresse erhalten, sollte dies einfach funktionieren. Wenn nicht, ist es so gut wie unmöglich.
Alan Curry

@AlanCurry Wenn sowohl Client als auch Server MPTCP unterstützen, ist dies möglich. Die MPTCP-Unterstützung ist jedoch immer noch sehr begrenzt, so dass dies wahrscheinlich nicht der Fall ist.
Kasperd

Antworten:


4

Ich vermute, dass diese Lösung nicht für SSHFS usw. funktioniert, aber Sie können sich Mosh ansehen, das zumindest für die Shell selbst Roaming-Unterstützung bietet.


Dies sieht nach einer sehr guten Lösung aus, muss aber leider auch auf dem Server installiert werden, was aufgrund von Berechtigungen nicht immer möglich ist.
User000001

4

Ich fürchte, Sie können das per Definition nicht tun. Eine SSH-Sitzung wird über eine TCP-Verbindung ausgeführt, die durch das Vierertupel (Quelladresse, Quellport, Zieladresse, Zielport) definiert wird. Sie können die bestehende Verbindung nicht auf eine andere Adresse auf dem Client verschieben (abgesehen von der Tatsache, dass das Betriebssystem die Verbindung abbricht, wenn die Schnittstelle ausfällt).

NAT kann dieses Bild erschweren, aber nicht in irgendeiner Weise, die Ihnen helfen wird.


Ja, aber die Anwendung kann erneut eine Verbindung herstellen, sobald sie weiß, dass der Socket geschlossen wurde. Verfügt das SSH-Protokoll über eine Vorkehrung, um eine alte Sitzung fortzusetzen?
Ajay Brahmakshatriya

@ AjayBrahmakshatriya SSH hat keine Tools, um Sitzungen
fortzusetzen

2

Alter Thread, ich weiß, aber der Vollständigkeit halber, da ich das Gleiche gesucht habe ...

Ab Windows 7 sollten Sie lediglich in der Lage sein, sowohl Ihren WLAN-Adapter als auch den Ethernet-Adapter auszuwählen und "Bridge-Verbindung" zu wählen. Auf diese Weise erhalten Sie eine einzige IP-Adresse für beide, und Sie können nun das Ethernet nach Belieben trennen und wieder verbinden (vorausgesetzt, Sie haben eine kontinuierliche WLAN-Abdeckung).


Gute Idee, ich werde es versuchen müssen.
Doug

Wenn Sie dies tun, können Sie nicht auf beide Netzwerke gleichzeitig
zugreifen.

2

Ich schaffe das auf zwei Arten:

Starten Sie die Sitzung von einem Terminalserver in Ihrem Rechenzentrum (RDP / Windows / etc)

ODER

Installiere GNU oder und sie nach dem Login.

Ich bevorzuge, tmuxweil screenes ziemlich alte Schule ist, aber wenn Sie nur unterstützte Pakete installieren dürfen, screenist in der RHEL-Repo.

ODER

Tue beides.


tmuxist wirklich praktisch. Es tmuxist eine exzellente Angewohnheit, sich auf entfernte Dinge einzulassen .
Küken

Ja, ich stimme zu. Die Mehrfachfensterfunktion ist großartig.
Doug

1

Das geht nicht so einfach.

Ich kann Sie auf eine Reihe sehr teurer Anwendungen hinweisen, mit denen Sie eine Telnet- oder SSH-Sitzung beim Wechsel zwischen IPs oder APs oder sogar für längere Zeiträume ohne Netzwerkverbindung aufrechterhalten können. Dies wird jedoch im Grunde durch die Einrichtung eines stets offenen Servers erreicht Sitzung für den Clientcomputer, damit der Server die Verbindung nicht anders kennt oder getrennt wird.

Ich nehme an, Sie könnten so etwas verschlüsseln, aber ich stelle mir vor, dass meine Kunden, wenn es einfach wäre, nicht mit 5-stelligen Kosten dafür vergewaltigt würden, dass ihre Terminalverbindungen auf drahtlosen Handscannern offen bleiben.

Allerdings bin ich über den Bildschirm gestolpert , der behauptet, dauerhafte SSH-Sitzungen zu erstellen , die tatsächlich funktionieren könnten ... probieren Sie es aus.


1

Das Problem ist wahrscheinlich, dass sich Ihre Quell-IP-Adresse ändert, wenn Sie zwischen Kabel und WLAN wechseln. Dadurch wird verhindert, dass ssh-Sitzungen zurückkehren.

Ich habe das unter Linux erledigt, indem ich über einen VPN eine Verbindung hergestellt habe und sichergestellt habe, dass die VPN-Verbindung Ihrem Konto immer die gleiche IP-Adresse gibt (nicht schwer zu erzwingen, aber die Wahrscheinlichkeit ist groß, dass Sie die gleiche IP-Adresse über VPN ohnehin bereits standardmäßig erhalten, wenn dies der Fall ist verfügbar, aber besser durchsetzen, um sicherzugehen). Ich benutze meistens vtun, aber openvpn ist auch in Ordnung. Stellen Sie sicher, dass Ihre Verbindungen über den VPN gehen (korrektes Routing, Push-Präfixe, ...)

Ich war in der Lage, auch nur 5 Minuten über das Kabel offline zu sein, mich dann mit dem WLAN zu verbinden und trotzdem in der Lage zu sein, mit all meinen SSH-Sitzungen in Verbindung zu bleiben. Laufender Ping, MTR, HTOP, ... Fahren Sie einfach fort, wenn der VPN wiederhergestellt ist, als wäre nichts passiert.


0

Versuchen Sie, beim ersten Start der SSH-Sitzung nur WLAN zu verwenden. Schließen Sie dann Ihr Ethernet an. Dadurch sollten neue Verbindungen über das Ethernet möglich sein, aber die bestehende Verbindung bleibt über WLAN bestehen. Zumindest habe ich gesehen, dass es mit OSX so funktioniert, also kann das Betriebssystem / die Hardware variieren.


0

Ich bin mir ziemlich sicher, dass Sie dies mit ein bisschen Hacking mit VMs und Tunneling tun können.

Dies ist nicht getestet, aber lassen Sie mich wissen, ob es tatsächlich funktioniert.

  1. Erstellen Sie eine Gast-VM mit zwei Schnittstellen, einem überbrückten Adapter (für WLAN) und einem Host-Netzwerk
  2. Nehmen wir an, die VM verfügt über 192.168.0.25 für den überbrückten Adapter für die Frau und 192.168.56.5 nur für den Host.
  3. Erstellen Sie innerhalb des VM die SSH-Verbindung mit einem Tunnel zum Port 22 der Remote-Seite ssh -L 10022:remote.server.example.com:22
  4. Jetzt durch den Tunnel verbinden. ssh 192.168.56.3 -p 10022
  5. Wenn Sie Ihre WLAN-Verbindung verlieren, wechseln Sie den Adapter auf der VM zum Ethernetzadapter.
  6. Hoffentlich wird die Routing-Tabelle nicht durcheinander gebracht

Lass mich wissen ob es funktioniert.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.