2009-05-08 4 views
20

Ist es möglich, einen SSH-Tunnel mit dynamischen Portweiterleitung wie folgt einzurichten:ssh -D <port><[email protected]>; aber umgekehrt?

ssh -D

aber es anders tun um? Das heißt, ich möchte die Verbindung auf meinem lokalen Rechner initiieren und die dynamische Port-Weiterleitung dort passieren lassen, und meinen Freund seinen Browser mit dem anderen Ende des Tunnels verbinden lassen.

Das oben genannte funktioniert perfekt, wenn mein Freund das oben genannte gibt, aber ich will ihm ssh Zugang zu meiner Maschine nicht geben, lassen Sie ihn nur seinen Browser obwohl es Proxy.

+1

Diese Frage bezieht sich nicht auf die Programmierung. Versuchen Sie es mit serverfault.com – bdukes

Antwort

27

OpenSSH finden Sie in der -R Schalter:

-R [bind_address:]port:host:hostport 
     Specifies that the given port on the remote (server) host is to 
     be forwarded to the given host and port on the local side. This 
     works by allocating a socket to listen to port on the remote 
     side, and whenever a connection is made to this port, the connec‐ 
     tion is forwarded over the secure channel, and a connection is 
     made to host port hostport from the local machine. 

Obwohl es Lösungen besser sein können, können Sie Computer Ihres Freundes schaffen könnte einen SOCKS-Proxy auf remotehost an Port 24680 in der folgenden Weise. Erstens haben

ssh -R 24680:localhost:12345 remotehost 

Und dann tun

ssh -D 12345 localhost 

Offensichtlich beide Sitzungen am Leben gleichzeitig gehalten werden müssen.

+3

Es lohnt sich, nur eine kleine Erklärung hinzuzufügen. Also, wenn Sie CompA und CompB haben. Der 'ssh -R 24680: localhost: 12345 remotehost' wird von CompA ausgeführt, und' ssh -D 12345 localhost' wird ebenfalls von CompA ausgeführt. Erstellt einen Proxy für Person B, um den SOCKS-Proxy in CompA zu verwenden. Die Person bei CompB verbindet den Webbrowser mit seinem (B) lokalen Port 24680 und verwendet somit per Proxy den SOCKS-Proxy bei CompA. Sehr schlau! – barlop