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

Как подключиться по SSH к удаленному серверу, подключенному через обратный туннель SSH, но с другого сервера, чем этот туннель?

Мне кажется, что я, возможно, использую неправильную терминологию в своем исследовании до настоящего времени, поэтому я не нахожу то, что ищу. Все, что я нашел, - это информация о том, как настроить обратный туннель SSH и / или как подключиться к удаленному серверу по SSH с сервера на другом конце туннеля, но это не то, что я ищу.

У меня есть несколько удаленных серверов, которые устанавливают обратный SSH-туннель к центральному серверу (я называю это "сервер перехода", но я также видел, что он упоминается как" сервер-бастион "и другие термины). Эти обратные туннели SSH работают нормально и с самого "сервера перехода", можно подключиться к любому из удаленных серверов по SSH, просто установив SSH на номер порта туннеля конкретного сервера (используя -p флаг).

Но то, что я пытаюсь сделать, - это SSH с сервера, отличного от «сервера перехода» (возможно, даже с использованием чего-то вроде PuTTY), через «сервер перехода», а затем на удаленный сервер. Я почти уверен, что это возможно, но мне не везет с синтаксисом этой команды (или какой-либо из «туннельных» функций PuTTY).

«Сервер перехода» работает под управлением Ubuntu 18.04. Я пробовал использовать SSH с других серверов Ubuntu и с сервера Windows с помощью PuTTY, но моя первая цель - сначала заставить это работать между двумя серверами Linux (PuTTY - это бонус).

Настроены обратные SSH-туннели. из с удаленных серверов на «сервер перехода», используя эту команду на удаленных серверах:

ssh -i /home/root/.ssh/rssh_rsa -f -K 10 -N -R 0:localhost:22 jump.example.com

(Обратите внимание, что 0 перед localhost заставляет «сервер перехода» динамически выбирать номер порта для своего конца туннеля).

Думаю, все, что вам нужно сделать, это добавить *: в начале спецификации конечной точки туннеля. Так что у вас будет *:0:localhost:22. Это указывает ssh прослушивать все интерфейсы, а не только localhost, в конечной точке туннеля jumphost.

Если у jumphost есть несколько интерфейсов, вы можете указать один из них для прослушивания (например, 192.168.1.1:0:localhost:22).

Тогда вы просто захотите ssh -p NNN jump.example.com попасть в туннель.

Надеюсь, это очевидно, но это будет означать, что любой, кто может подключиться к этому порту на jumphost, сможет затем подключиться к удаленному серверу. Установите соответствующие правила брандмауэра.