Пересылка определенных портов через реверсовые туннели SSH
Поэтому, к сожалению, я живу в месте, которое не позволит мне иметь статический IP-адрес, поэтому я установил доступ к своему домашнему компьютеру через обратные туннели SSH, которые запускаются на экземпляре ecacon ec2. Я получил SSH, чтобы работать нормально, но я не могу понять порт вперед.
Вот небольшая инфографика, которую я сделал, чтобы помочь проиллюстрировать (я чувствовал, что вопрос был более ясным с диаграммой того, что я пытался сделать.
- Открыть файл через SSH и Sudo с помощью Emacs
- Могу ли я создать пользователя SSH, который может получить доступ только к определенному каталогу?
- Как я могу направить * некоторый * трафик через прокси SSX SOCKS на OS X?
- Могу ли я установить кодовую страницу KiTTY по умолчанию для UTF-8 вместо ISO-8859-1?
- OSX: ssh: Не удалось разрешить имя хоста: nodename или servname предоставлено или неизвестно
Вот команды, перечисленные в графике:
Я следующий на своем домашнем компьютере:
ssh -R 1337:localhost:22 -i .ssh/tokyoMinekey.pem ec2-user@ec2serveraddress
И я запускаю это на сервере ec2:
ssh -L6600:localhost:6600 -Nf localhost -p 1337
FYI, я добавил порт 6600 в свою группу безопасности для amazon ec2, поэтому его открыть на стороне ec2
- Как я могу создать пользователя с доступом только для чтения ко всем файлам? (Т.е. root без разрешения на запись)
- Тайм-аут ключа ssh-agent с экраном или tmux на бастионном хосте
- Как копировать выходные данные из удаленной команды в локальный буфер обмена?
- SSH-соединение под UDP?
- SSH работает медленно на cygwin
- Wake-on-LAN через Интернет практически невозможно
- Как использовать SSH для запуска сценария оболочки на удаленной машине?
- Как заставить GPG использовать консольный режим pinentry для запроса паролей?
2 Solutions collect form web for “Пересылка определенных портов через реверсовые туннели SSH”
Я не уверен, почему вы используете две отдельные команды ssh здесь? Если вы хотите переслать порт 6600 на EC2 вместо порта 6600 на машине дома, вам нужно всего лишь:
ssh -R :6600:localhost:6600 -i .ssh/tokyoMinekey.pem ec2-user@ec2serveraddress
Вам также необходимо убедиться, что опция GatewayPorts
включена в файле sshd_config
экземпляра EC2.
Очевидно, вам нужно оставить это ssh-соединение открытым для порта вперед, чтобы продолжить работу, но кроме этого не должно быть никаких проблем.
Не могли бы вы предоставить результаты:
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
.