2015-04-21 5 views
-2

У меня есть 3 машины Ubuntu. Первый (A) - это моя локальная машина, вторая (B) является шлюзом к третьему (C) серверу Ubuntu. Я могу использовать SSH с моей локальной машины, A, до B, а затем SSH от B до C. Я не могу напрямую использовать SSH от A до C.удаленный вход на сервер ubuntu через SSH

Что мне нужно - это дистанционно регистрировать (графически) на C из B? и, если возможно, от A? Я не парень в сети, и концепция туннелирования и порт 3389 меня смущает.

Цените свою помощь.

ответ

1

Сбивание с толку или нет, вам необходимо проложить туннель. Самый простой:

ssh -L 7722:address.of.C:22 address.of.B 

зарегистрирует вас в B. В то же время, он будет создан туннель между портом текущей машины 7722 (может быть любой неиспользуемый порт в течение 1024, я произвольно выбранный 7722) и порт C в 22 (порт ssh). Затем, в другом терминале,

ssh -X -p 7722 localhost 

будет открыть соединение SSH на локальный порт 7722, который в настоящее время туннеля к Кассиопеяну 22. Это функционально эквивалентно ssh address.of.C в то время как выше туннель существует.

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


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

ssh -fNM -S /tmp/tunnel.B.to.C.control 7722:address.of.C:22 address.of.B 

ssh -X -p 7722 localhost 

ssh -O exit -S /tmp/tunnel.B.to.C.control address.of.B 

Здесь /tmp/tunnel.B.to.C.control произвольное имя файла в месте, где вы можете создать файл. Первая команда устанавливает туннель и выходит (вместо входа в систему), но остается в памяти и записывает свои действия в названный файл. Последняя команда затем удаляет туннель, память и файл.

+0

Спасибо! Можете ли вы порекомендовать мне хороший учебник по SSH, посвященный теме? – BestCoderEver

+0

Извините, не знаю, я узнал об этом с man-страницы. – Amadan