Возможный дубликат:
SSH на компьютер, который затем будет SSH на другой компьютер
У меня есть 3 Linux-машины A, B и C.
Я могу ssh от A до B; От B к C, но не от A к C напрямую, потому что C находится за брандмауэром.
Есть ли способ напрямую передать ssh от A к C? Я слышал о туннелировании, но не знаю, как это сделать. У меня есть только права root в A, но не в B и C.
Вы можете настроить SSH-туннель от B к C следующим образом:
ssh -L 50022:C:22 user@B
Где B
и C
- соответствующие адреса этих серверов. . Затем вы можете подключиться напрямую к C, используя туннелированный порт:
ssh -p 50022 user@localhost
В этом случае пользователь
- это пользователь, под которым вы хотите подключиться к C. Соединение будет туннелировано через установленное соединение ssh. B будет подключаться к C и передавать трафик через прокси.
(Обратите внимание, что выбор порта 50022 произвольный; вы можете выбрать все, что не используется на вашем локальном компьютере.)
Вы можете создать туннель от A к C через B.
От A:
ssh -fgN -L 2222:C:22 B
Приведенная выше команда запускает ssh в фоновом режиме. Он подключит вас к B, запустит туннель, прослушивающий A, localhost, на порту 2222, подключится к порту C 22.
Теперь на A вы можете ssh на C, используя порт 2222:
ssh -p 2222 localhost