Моя ситуация :
Я (localhost) -> Сервер A (ip: 100.100.100.100) => (сервер B (ip: 192.168.25.100), сервер ....)
Я могу подключиться к серверу SSH, так как у него есть настоящий ip, если я затем хочу подключиться к серверу b, я бы подключил ssh к серверу b с его ip (192.168.25.100)
пример:
с моего компьютера:
ssh user@100.100.100.100
затем в 100.100.100.100,
ssh user@192.168.25.100
это приведет меня к серверу B с помощью SSH
Что делать, если я хочу подключиться к серверу B напрямую? Как я могу это сделать?
пример:
из моего ок:
ssh@192.168.25.100
я пробовал следующее:
ssh -L 22:localhost:22 user@100.100.100.100
безуспешно
источник
me% ssh user@100.100.100.100
; мы уже не покрывали это? или вы имеете в виду «что если я хочу полноценный VPN для A?», в этом случае мой ответ остается в силе.Вам не нужно использовать переадресацию порта ssh на ssh на внутренний компьютер через прокси. Вы можете использовать функцию ssh для выполнения команды на первом сервере, к которому вы подключаетесь, чтобы подключить ssh к третьему компьютеру.
В
-t
опции силы SSH выделить псевдо-терминал , так что вы можете запустить интерактивную команду.Это может работать и с ключами ssh. Если у вас есть личный и открытый ключ на компьютере A и ваш открытый ключ в файлах авторизованных ключей на компьютерах B и C, вы можете использовать
-A
опцию для переадресации соединения с агентом аутентификации.источник
Я использовал другое решение. Я использовал
ProxyCommand
опцию (здесь, в~/.ssh/config
):Это не устанавливает туннель между портами, вместо этого туннелирует ssh с помощью стандартного stdin / out. Недостатком этого метода является то, что на самом деле есть три ssh-соединения для аутентификации. Но чтобы подключиться к внутреннему хосту, просто наберите:
... так что вам не нужно заботиться о выборе любого IP для этого туннеля.
источник
corkscrew
илиnc
(netcat
), но ни один не работает так легко, как это.согласно справочной странице ssh, ProxyCommand является правильным методом
синтаксис:
источник
-W
вариант существовал, когда на этот вопрос был дан ответ. Но с более новыми версиями клиента ssh я согласен, что комбинацияProxyCommand
и-W
является предпочтительным методом. Может быть, добавить некоторый контекст, показывающий, как его можно использовать в командной строке, а также пример раздела для.ssh/config
.-W
команду, а какие нет? Немного поиска в Google не-W
познакомился с OpenSSH 5.4, выпущенной в 2010 году. Поэтому ответ - да @kasperdНачиная с OpenSSH 7.3 (конец 2016 года), самый простой способ - это настройка ProxyJump . В вашем
~/.ssh/config
:Или в командной строке
-J B
.источник