
Имеется 3 компьютера:
- локальная машина (osx)
- server1 (centos 7 в дата-центре, порт 22 открыт)
- server2 (centos 7 закрыт за nat)
server2 поддерживает обратный туннель к server1 на порту 2222. Запуск ssh localhost -p 2222
на server1 напрямую переходит в командную строку server2
Как лучше всего настроить туннель от локальной машины через server1 к server2? Например, можно инициировать туннель от localhost к server1 с помощью ssh -D 5000 -N root@server1
.
Как сделать дополнительный прыжок и заставить туннель пройти весь путь от localhost до server1 и до server2? Я пробовал это, ssh -L 5000:localhost:5000 root@server1 ssh -L 5000:server2:2222 -N root@localhost
но это не сработало
например, localhost -5000-> server1 -2222-> server2
решение1
Создав обратный туннель, вы связали localhost:2222 на server1 с server2. Я бы рекомендовал вам теперь создать туннель на каком-нибудь порту вашей локальной машины OSX с server1 (в этом примере я выбрал 9999), просто чтобы сделать доступ к обратному туннелю, который вы создали ранее, т. е.
ssh -L 9999:localhost:2222 root@server1
Оставьте это открытым, чтобы ваш двойной переход на server2 был готов к использованию. Далее, в отдельном терминале, вы должны иметь возможность сделать
ssh -p 9999 root@localhost
и получить доступ к server2. В целях безопасности я бы рекомендовал не использовать root для SSH-подключений.