Мне кажется, что я, возможно, использую неправильную терминологию в своем исследовании до настоящего времени, поэтому я не нахожу то, что ищу. Все, что я нашел, - это информация о том, как настроить обратный туннель 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, сможет затем подключиться к удаленному серверу. Установите соответствующие правила брандмауэра.