Weiterleiten bestimmter Ports über SSH-Reverse-Tunnel

5613
Hortinstein

Leider lebe ich an einem Ort, an dem ich keine statische IP-Adresse haben kann. Daher habe ich den Zugriff auf meinen Heimcomputer über umgekehrte SSH-Tunnel eingerichtet, die auf einer micro amazon ec2-Instanz laufen. Ich habe SSH dazu gebracht, einwandfrei zu funktionieren, aber ich kann Port Forwards nicht herausfinden.

Hier ist eine kleine Infografik, die ich zur Veranschaulichung erstellt habe (ich dachte, die Frage sei klarer mit einem Diagramm von dem, was ich versuchen wollte).

Hier sind die in der Grafik aufgeführten Befehle:

Ich habe folgendes auf meinem Heimcomputer:

ssh -R 1337:localhost:22 -i .ssh/tokyoMinekey.pem ec2-user@ec2serveraddress 

und ich führe das auf dem ec2 Server aus:

ssh -L6600:localhost:6600 -Nf localhost -p 1337 

diagram of my pain...in paint AHHHHHH YEAHHHHHH!

Zu Ihrer Information, ich habe Port 6600 in meine Sicherheitsgruppe für amazon ec2 aufgenommen, also auf der ec2-Seite offen

5
Ich habe ein ähnliches Setup (denke ich), das es mir erlaubt, mich zu Hause über VNC mit meinem Mac zu verbinden ... Ich verwende einen Server in der Mitte und drücke alles durch ssh. Die Office Win7-Maschine tunnelt in den Server und die Heim-MacOS-Maschine tunnelt in den Server. Dann starte ich auf der Office Win7-Maschine einen VNC-Client und stelle eine Verbindung zu localhost: customport her. Vielleicht sollte der Tunnel in Ihrer EC2-Instanz tatsächlich von Ihrem Server initiiert werden Klient? baraboom vor 12 Jahren 0

2 Antworten auf die Frage

3
TomH

Ich bin nicht sicher, warum Sie hier zwei separate SSH-Befehle verwenden. Wenn Sie Port 6600 auf der EC2 statt auf Port 6600 auf dem Computer zu Hause weiterleiten möchten, müssen Sie nur Folgendes tun:

ssh -R :6600:localhost:6600 -i .ssh/tokyoMinekey.pem ec2-user@ec2serveraddress 

Sie müssen außerdem sicherstellen, dass die GatewayPortsOption in der sshd_configDatei der EC2-Instanz aktiviert ist .

Natürlich müssen Sie die ssh-Verbindung für den Port-Forward offen lassen, um weiterarbeiten zu können, ansonsten sollten jedoch keine Probleme auftreten.

Ich habe es funktioniert! Hortinstein vor 12 Jahren 0
2
binfalse

Könnten Sie bitte die Ausgabe von:

netstat -tulpen 

auf ec2serveraddress. Ich erwarte zu sehen, dass beide Tunnel beginnen 127.0.0.1:PORT? 127.0.0.1ist die IP des lokalen Rechners selbst, von außen nicht zugänglich. Das heißt, Sie können auf diesen Tunnel vom Server selbst, aber nicht von einem anderen Rechner aus zugreifen.

Wenn dies der Fall ist, fügen Sie bitte Folgendes hinzu /etc/ssh/sshd_config:

GatewayPorts yes 

Mit dieser Option werden die Ports erstellt 0.0.0.0, sodass Sie von überall aus eine Verbindung herstellen können. Wenn es keine anderen Gründe gibt, zwei verbundene Tunnel zu erstellen, können Sie ihn natürlich auf einen einzigen verkleinern:

ssh -R 6600:localhost:22 -i .ssh/tokyoMinekey.pem ec2-user@ec2serveraddress 

Dadurch wird ein Tunnel ec2serveraddress:6600für Sie erstellt home:22.

https://gist.github.com/1053579 passiert, wenn ich nach Ausführen des Befehls "netstat -tulpen" in ec2 eingebe: "ssh -R: 6600: localhost: 6600 -i .ssh / tokyoMinekey.pem ec2-user @ ec2serveraddress auf meinem Heimcomputer " Hortinstein vor 12 Jahren 0
Woots hat es funktioniert danke für Ihre Hilfe Hortinstein vor 12 Jahren 0
Warum verwendet Ihr einfacher ssh-Aufruf keinen fortlaufenden Doppelpunkt unter `ssh -R 6600: localhost: 22 ...`, wenn die Antwort von @TomH einen hat? (`ssh -R: 6600: localhost: 22 ...`? Gibt es Unterschiede? Bryan P vor 9 Jahren 0