Назад | Перейти на главную страницу

Как подключения через туннель ssh выглядят для хоста

Не знаю, как назвать вопрос, но ситуация следующая:

У меня 3 сервера:

USER, TUNNEL, TARGET

на TUNNEL Я запускаю команду

TUNNEL:~$ ssh -nNT -L 0.0.0.0:22222:localhost:22 TARGET

что позволяет мне использовать ssh из USER к TARGET подключившись к TUNNEL в порту 22222

USER:~$ ssh TUNNEL -p 22222

Вопрос: из TARGET точки зрения, будет ли соединение казаться исходящим от USER или TUNNEL?

Насколько сложно это настроить и попробовать? Например, используя $SSH_CONNECTION переменная окружения:

USER:~$ ssh TUNNEL -p 22222 'echo $SSH_CONNECTION'

Но первое соединение создает переадресацию портов, которая прозрачна для приложения, которое его использует. Таким образом, второе TCP-соединение начинается на машине USER, достигает машины TUNNEL и оттуда прозрачно перенаправляется на машину TARGET. Итак, как только TARGET спросит, откуда происходит соединение, он получит реальный публичный IP-адрес USER.

Если вы подключаетесь к серверу через перенаправленный порт, он будет считаться исходящим локально.

СОВЕТ: Вы можете напрямую подключиться к цели, используя ProxyJump. Его можно использовать как $ ssh -J user@TUNNEL user@TARGET. Если у вас более старая версия клиента openssh, вы можете использовать ProxyCommand.