Internet über SSH-Sitzung an Remote-Computer bereitstellen?

19

Der Computer, über den ich SSHing zum Remote- / Host-Computer (dasselbe Netzwerk / LAN) verwende, hat Zugriff auf das Internet, der Host jedoch nicht.

Das Ausführen von Updates und das Installieren von Paketen auf dem Host ist recht unpraktisch, da ich dann einen Proxy lokal starten und dann den Remotecomputer konfigurieren muss, um ihn zu verwenden.

Also habe ich mich gefragt, ob es einen einfacheren Weg gibt, dies über SSH oder etwas anderes zu tun?

Ich habe eine Erkenntnis der Komplexität, die darin liegt, war aber neugierig zu wissen.

Verwendung plinküber Emacs (wenn es darauf ankommt).

Blutende Finger
quelle

Antworten:

21

Nennen wir die Maschine , die den Internet - Zugang hat hasinetund die, die nicht der Fall ist noinet.

Wenn Sie eine SSH-Verbindung von noinet nach herstellen können hasinet

Dies ist mit dem in OpenSSH integrierten SOCKS-Proxy problemlos möglich. Mit diesem Befehl wird ein SOCKS-Proxy beim noinetAbhören des Ports eingerichtet 1080:

noinet$ ssh -D 1080 hasinet

Wenn Sie nur SSH-Verbindungen zu noinet von herstellen können hasinet

Sie können den SOCKS-Proxy von OpenSSH ausführen hasinetund dann einen Port von noinetnach weiterleiten hasinet. Dies kann geschickt mit einem Befehl wie folgt erledigt werden (danke @Patrick):

hasinet$ ssh -D 1080 localhost -t ssh -R 1080:localhost:1080 noinet

So verwenden Sie den SOCKS-Proxy

Wie Sie diesen Proxy verwenden, hängt von der Anwendung ab. Einige Anwendungen unterstützen integrierte SOCKS-Proxys. In diesem Fall müssen Sie Ihre App für die Verwendung des Proxys konfigurieren localhost:1080. Wenn nicht, können Sie Proxy-Ketten oder Redsocks verwenden, wie @sciurus vorschlägt. tsocks ist eine leichtere Lösung, wenn Sie nur für einige Befehle einen Netzwerkzugriff benötigen.

schmuddelig
quelle
1
Anstatt einen Socks-Proxy auf Hasinet installieren zu müssen, wenn Noinet raus muss, genügt ssh -t -D 1080 localhost ssh -R 1080:localhost:1080 noinet(ja, ein Befehl).
Patrick
2

Hier ist eine Möglichkeit, dies über SSH zu tun:

Führen Sie das Programm auf dem Computer ohne Internetzugang aus

ssh -D 8080 machine_with_internet_access

Sie können 8080 durch eine beliebige nicht verwendete Portnummer ersetzen.

Installieren Sie dann Software wie Proxy-Ketten oder Redsocks , konfigurieren Sie sie für die Verbindung mit localhost: 8080 und führen Sie Software aus, über die ein Internetzugang erforderlich ist.

Sciurus
quelle