So richten Sie am besten einen SSH-Tunnel für den Zugriff auf ein Remote-Netzwerk ein (Linux)

So richten Sie am besten einen SSH-Tunnel für den Zugriff auf ein Remote-Netzwerk ein (Linux)

Meine Situation: Ich möchte meine C++-Anwendung mit gdbserver und Eclipse remote debuggen. Eclipse läuft auf meiner lokalen Workstation (im Netzwerk 192.168.0.0) und gdbserver läuft auf einer Clustermaschine im Netzwerk 10.0.0.0. Ich habe SSH-Zugriff auf die Clustermaschine über eine Maschine, die sich in beiden Netzwerken befindet.

Wie kann ich einen Tunnel einrichten, damit mein Eclipse auf den GDB-Server zugreifen kann? Ich habe keine Administratorrechte/Root/Sudo-Zugriff.

Alle Maschinen sind Linux/Unix mit OpenSSH.

Antwort1

Ich gehe davon aus, dass Sie bereits per SSH auf ein System im Remote-Privatnetzwerk (10.0.0.0) zugreifen können. Wenn auf Ihrem lokalen System OpenSSH läuft, fügen Sie Folgendes hinzu $HOME/.ssh/config:

Host gatewaymachine
  LocalForward 12080 remote_ip:portnum

Dabei ist „remote_ip“ die IP-Adresse des Remote-Cluster-Computersystems, auf dem der GDB-Server läuft, und Portnum ist der Port, auf dem er lauscht. Stellen Sie per SSH eine Verbindung zum Gateway-Computer her und verbinden Sie Ihre Anwendung dann mit dem lokalen Host, Port 12080. Wenn es sich beispielsweise um eine Webanwendung handelt,

http://localhost:12080

Wenn Sie keine Webanwendung verwenden, müssen Sie Ihre Verbindungsinformationen so einrichten, dass sie widerspiegeln, dass Sie zum „localhost“-Port „12080“ (oder einem beliebigen Port, siehe unten) gehen.

Anstatt Ihre SSH-Konfiguration zu bearbeiten, können Sie auch SSH-Befehlsparameter verwenden:

ssh -L 12080:remote_ip:portnum gatewaymachine

(ändern Sie 12080 in den gewünschten Port über 1024; unter 1024 benötigen Sie Root-Zugriff, um eine Bindung an den Port herzustellen)

Antwort2

Im Grunde das, was jtimberman gesagt hat :). Vielleicht möchten Sie sich das ansehenautosshwenn Sie Probleme haben, Ihren Tunnel über längere Zeit aufrecht zu erhalten.

verwandte Informationen