2

Возможный дубликат:
Несколько прыжков SSH туннель ...

Вот настройки:

рабочий стол: мой рабочий стол. У меня есть root и я могу делать все, что захочу. Kubuntu 10.04.

бастион: хост-бастион, который разрешает только входящие SSH-соединения через порт 22. Я не контролирую этот сервер. Я не могу писать файлы где-либо на этом сервере. Единственные доступные мне команды - это встроенные команды ssh и shell (bash). CentOS.

сервер: сервер с файлом, который я хочу получить (т.е. скопировать на рабочий стол). Разрешает только входящие SSH-соединения от бастиона. Не разрешает исходящие соединения ssh. CentOS.

Я могу SSH с рабочего стола на бастион, а затем SSH с бастиона на сервер. Я могу настроить SSH-туннель на B следующим образом:

ssh -fNL 30000:localhost:22 server

И тогда следующее позволяет мне подключиться к серверу из бастиона:

bastion % ssh localhost -p 30000

Но это не работает (бастион отказывается от соединения):

desktop % ssh bastion -p 30000

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

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

РЕДАКТИРОВАТЬ: Я выяснил одно глупое решение:

bastion % ssh server "cat filename1" | ssh localhost "cat > filename2"

Это работает, хотя ssh предлагает (вы уверены, что хотите подключиться, да / нет? и пароль) получайте по-другому, поэтому вы должны ввести "да" и различные пароли хоста в правильном порядке). Но было бы неплохо, если бы я мог проложить туннель к серверу с рабочего стола.

1 ответ1

1

Сначала подключитесь к бастиону и настройте туннель с desktop -> bastion
ssh -L 30000:localhost:30000 bastion

Теперь настройте туннель от bastion -> server , запустив его на bastion
ssh -L 30000:localhost:22 server

Теперь вы можете sftp server:30000:/path/to/the/file/you/want.txt чтобы перетащить файл в ваш текущий каталог.

Первые две команды можно упростить, просто запустив
ssh -L 30000:localhost:30000 bastion ssh -L 30000:localhost:22 server
с рабочего стола я думаю.

РЕДАКТИРОВАТЬ:

Попробуй ssh -L 30000:server:22 bastion

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .