Initiieren Sie eine SSH-Verbindung vom Server zum Client

10

Wir können problemlos eine Verbindung sshzu dem Remote-Computer herstellen, der über eine öffentliche IP-Adresse verfügt.

Aber jetzt habe ich einen Remote-Computer ohne öffentliche IP-Adresse und muss von meinem Computer mit öffentlicher IP-Adresse aus eine Verbindung herstellen. Damit sollte der Remotecomputer diese Verbindung initiieren (einen Client hinzufügen).

Ich brauche es, weil mein Großvater ohne öffentliche IP am Computer sitzt und er manchmal Hilfe bei seinem System benötigt.

In einer ähnlichen Situation unter Windows, in der ich eine VNC-Verbindung (von TightVNC) verwendet habe, hat der TightVNC-Server die Option "Client hinzufügen": Der Benutzer hat gerade die IP des Clients eingegeben (dh meine öffentliche IP), mein Client befindet sich bereits im "Abhörmodus" und Wenn "Server" einen Client hinzufügt, wird die Verbindung initialisiert.

Ist es also möglich, den gleichen Trick mit einer SSH-Verbindung auszuführen?

Dmitry Frank
quelle

Antworten:

12

Per Definition ist der Client derjenige, der die Verbindung initiiert.

Für Ihr Problem denke ich, dass eine einfache Lösung darin besteht, einen umgekehrten Tunnel zu bauen.

Auf dem Computer ohne öffentliche IP:

ssh -R 2222:localhost:22 loginOfServerWithPublicIP@publicIP

Dies stellt über SSH eine Verbindung zum Server her und erstellt einen Tunnel vom Server mit öffentlicher IP an Port 2222 zum Computer ohne öffentliche IP an Port 22 (SSH).

Und dann auf dem Server:

ssh -p 2222 loginOfComputerWithoutPublicIP@locahost

Die Verbindung wird vom ersten Tunnel vom Port 2222 des Servers zum Port 22 des Computers umgeleitet. Möglicherweise möchten Sie ein Tool verwenden autossh, um den Tunnel widerstandsfähiger zu machen (dh ihn beim Herunterfahren automatisch neu zu starten).

lgeorget
quelle
Vielen Dank, sehr nützlich und prägnant. Weitere Details und andere nützliche Optionen finden Sie in den Antworten auf diese Frage .
AstroFloyd