Переадресация определенных портов через обратные туннели SSH

5511
Hortinstein

Так что, к сожалению, я живу в месте, где у меня не будет статического IP-адреса, поэтому я настраивал доступ к своему домашнему компьютеру через обратные туннели SSH, которые работают на экземпляре micro amazon ec2. Я получил SSH, чтобы работать нормально, но я не могу понять порт вперед.

Вот небольшая инфографика, которую я сделал, чтобы помочь проиллюстрировать (я чувствовал, что вопрос был яснее с диаграммой того, что я пытался сделать.

Вот команды, перечисленные на рисунке:

Я следующее на моем домашнем компьютере:

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

и я запускаю это на сервере ec2:

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

Диаграмма моей боли ... в краске Аааааааааааааааааааааааа!

К вашему сведению, я добавил порт 6600 в свою группу безопасности для amazon ec2, поэтому он открыт на стороне ec2

5
У меня есть аналогичная настройка (я думаю), которая позволяет мне подключаться к моему Mac дома через VNC ... Я использую сервер в середине и проталкиваю все через ssh. Офисная машина Win7 туннелирует в сервер, а домашняя машина MacOS туннелирует в сервер, затем на офисной машине Win7 я запускаю VNC-клиент и подключаюсь к localhost: customport ... возможно, туннель на вашем экземпляре EC2 должен фактически инициироваться вашим сервером. клиент? baraboom 12 лет назад 0

2 ответа на вопрос

3
TomH

Я не уверен, почему вы используете две отдельные команды SSH здесь? Если вы хотите перенаправить порт 6600 на EC2 вместо порта 6600 на машине дома, все, что вам нужно сделать, это:

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

Вам также необходимо убедиться, что GatewayPortsопция включена в sshd_configфайле на экземпляре EC2.

Очевидно, вам нужно будет оставить это ssh-соединение открытым для продолжения работы порта, но в остальном проблем быть не должно.

Я получил это работает! Hortinstein 12 лет назад 0
2
binfalse

Не могли бы вы предоставить вывод:

netstat -tulpen 

на ec2serveraddress. Я ожидаю увидеть, что оба туннеля начинаются в 127.0.0.1:PORT? 127.0.0.1это IP самого локального компьютера, недоступный извне. Это означает, что вы можете получить доступ к этому туннелю с самого сервера, но не с любой другой машины ...

Если это так, пожалуйста, добавьте следующее /etc/ssh/sshd_config:

GatewayPorts yes 

Эта опция создаст порты в 0.0.0.0, так что вы можете подключиться отовсюду. Если нет никаких других причин для создания двух соединенных туннелей, вы, конечно, можете уменьшить его до одного:

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

Это создаст туннель ec2serveraddress:6600для вас home:22.

https://gist.github.com/1053579 происходит, когда я набираю «netstat -tulpen» на ec2 после запуска: «ssh -R: 6600: localhost: 6600 -i .ssh / tokyoMinekey.pem ec2-user @ ec2serveraddress на моей домашней машине " Hortinstein 12 лет назад 0
Woots заработал, спасибо за вашу помощь Hortinstein 12 лет назад 0
Почему ваш простой ssh-вызов не использует двоеточие в `ssh -R 6600: localhost: 22 ...`, если ответ от @TomH есть? (`ssh -R: 6600: localhost: 22 ...`? Есть ли разница? Bryan P 9 лет назад 0

Похожие вопросы