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

6

Meine Situation: Ich möchte meine C ++ - Anwendung remote mit gdbserver und eclipse debuggen. Eclipse wird auf meiner lokalen Workstation (im Netzwerk 192.168.0.0) ausgeführt, und gdbserver wird auf einer Clustermaschine im Netzwerk 10.0.0.0 ausgeführt. Ich habe SSH-Zugriff auf die Cluster-Maschine über einen Computer, der sich in beiden Netzwerken befindet.

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

Alle Maschinen sind Linux / Unix mit openssh.

Peter Smit
quelle

Antworten:

8

Ich vertraue darauf, dass Sie bereits SSH an ein System im privaten Remotenetzwerk (10.0.0.0) senden können. Wenn auf Ihrem lokalen System openssh ausgeführt wird, 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-Maschinensystems, auf dem gdbserver ausgeführt wird, und portnum der Port, den es überwacht. SSH zu Gateway-Maschine, dann verbinden Sie Ihre Anwendung mit localhost, Port 12080. Wenn dies beispielsweise eine Webanwendung ist

http://localhost:12080

Wenn Sie keine Webanwendung verwenden, müssen Sie Ihre Verbindungsinformationen so einrichten, dass Sie den 'localhost'-Port' 12080 '(oder einen beliebigen Port, den Sie möchten, siehe unten) verwenden.

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

ssh -L 12080:remote_ip:portnum gatewaymachine

(Ändern Sie 12080 in einen beliebigen Port über 1024; unter 1024 benötigen Sie Root-Zugriff, um eine Verbindung zum Port herzustellen.)

jtimberman
quelle
Ich kann nicht direkt zu Cluster-Maschine ssh. Nur über Gateway-Maschine. Wie kann ich diesen zusätzlichen Schritt integrieren?
Peter Smit
Ich habe meine Antwort s / clustermachine / gatewaymachine / bearbeitet und denke daran, dass remote_ip die IP der Cluster-Maschine ist, auf der Ihre App ausgeführt wird und 'portnum'
abhört
1

Grundsätzlich, was jtimberman gesagt hat :). Möglicherweise möchten Sie sich mit Autossh befassen, wenn Sie Probleme haben, Ihren Tunnel über einen längeren Zeitraum aufrechtzuerhalten.

Sigjuice
quelle