Я хочу соединить (используя ssh) два удаленных компьютера в локальной сети, используя уникальный общедоступный IP-адрес X.X.X.X.
|
HOST_A---------|
172.1.1.2 | _____________
|---------|ROUTER PUBLIC|-----------|INTERNET|-------------|CLIENT
| _______________
| 172.1.1.1 X.X.X.X
HOST_B---------|
172.1.1.3 |
У моего общедоступного IP-адреса есть ограничение на порт 22, поэтому я использую порт 1234. Переадресация портов 1234 маршрутизатора включена и направлена на HOST_A. В настоящее время я могу получить доступ к HOST_B из клиента, выполняющего
$ ssh -p 1234 user@X.X.X.X
Howerver, я не могу получить доступ к HOST_B и не понимаю, как использовать опции -R и -L для ssh. Я читал и следую многим примерам в сети, и я не могу достичь HOST_B без входа в HOST_A ранее.
Я приветствую объяснение о TCP-пересылке, потому что я не уверен, можно ли войти в HOST_B с помощью ip X.X.X.X без настройки HOST_A.
Пример моего поиска: Как настроить ssh-туннель для пересылки ssh?
альтернативное решение для решения этой проблемы, чтобы доступ к оболочке SSH на ваш компьютер без IP Public с рабочего стола или просто смартфона (например, Android), установив на свой компьютер robotito, который хочет получить удаленный доступ к SSH.
Я сделал сценарий (протестирован на моей raspbian OS в Raspberry Pi), чтобы вы могли легко установить robotito на Raspberry Pi, Debian или Ubuntu Box (дистрибутив пакета debian). вот шаги, чтобы сделать ваш Linux-бокс удаленным:
Откройте команду оболочки или вы можете назвать ее терминалом, перейдите в свою домашнюю папку, загрузите скрипт установщика с помощью команды:
$wget https://opengateway.googlecode.com/files/robotito
после этого запустите скрипт, введя команду:
$sudo ./robotito
а затем вы можете отредактировать файл credentials.rb из папки конфигурации, если robotito использует вашу учетную запись gtalk, и сохранить его, нажав ctrl + x и y. По умолчанию используется редактор nano.
запуск robotito из папки robotito по команде
$cd robotito
$./jabbershd start
Теперь, когда это сделано, вы можете использовать ssh из любого клиента Google Talk. Не забудьте добавить учетную запись robotito gtalk в свою учетную запись Google Talk и протестировать ее, общаясь друг с другом перед использованием учетной записи.
Я думаю, что лучше открыть 2 порта на маршрутизаторе и перенаправить их; один для host_a, как вы, а другой, например, 1235, для host_b. Итак, вы можете использовать
ssh -p 1234 user@X.X.X.X
для host_a и
ssh -p 1235 user@X.X.X.X
для host_b
Вы можете просто войти в HOST_A, а затем в HOST_B с помощью одной команды, если у вас есть доступ с HOST_B из HOST_A:
ssh -tA user@HOST_A "ssh user@HOST_B"
-t выделит псевдотонку. -A перенаправляет вашего агента, если вы используете одни и те же ключи rsa для доступа к HOST_A и HOST_B.
Это простой, быстрый и грязный способ получить терминал на HOST_B от клиента.