У меня есть три компьютера.
ПК1 и ПК2 находятся в частной локальной сети, где ПК1 известен ПК2 как192.168.0.2
ПК2 и ПК3 находятся в другой локальной сети, где ПК2 известен как ПК3 как192.168.123.101
Как я могу подключиться к ПК1 с ПК3 по SSH.
Есть ли что-то вроде:
ssh user@192.168.0.2 -via user@192.168.123.101
С помощью SSH есть четкое решение:
на вашем локальном компьютере настройте так
~/.ssh/config
, чтобы он имел следующее:Как на шлюзе, так и на конечном сервере, к которому вы хотите подключиться, убедитесь, что у вас есть открытые ключи локального клиента, расположенные в
~/.ssh/authorized_keys
На компьютере шлюза вам нужно изменить так
~/.ssh/authorized_keys
, чтобы в начале строки, которая указывает открытый ключ вашего клиента, добавили принудительную команду следующим образом:-A
Является направить агент , если вам не нравится , чтобы отправлять пароли все время ...Таким образом, каждый раз, когда вы делаете что-то подобное,
ssh WhatYouWillCallTheConnection
он будет проходить прямо через шлюз и прозрачно соединит вас с сервером на другой стороне.источник
ssh -A
если вы не доверяете администратору шлюза. Он не может получить ваш закрытый ключ, но пока вы подключены к шлюзуssh -A
, он может использовать перенаправленный агент для подключения к другим машинам, как вы.Переадресация портов может пригодиться.
С ПК1:
7777 может быть просто любым портом (при условии, что он еще не используется). Мне просто нравится этот номер, плюс любой «заказ», которым я могу управлять с помощью +1 (7778, 7779 и т. Д., И т. Д.).
После этого у вас будет «прозрачный» туннель от локального порта 7777 ПК1 до порта 22 ПК3. Просто выполните команду:
И вы должны быть на ПК3.
Вы также можете использовать -D для динамической переадресации порта, если вы хотите установить прокси SOCKS.
Ура!
источник
Ответ 2017+ (начиная с ssh v7.3) на это - ProxyJump :
ssh -J user@jumphost user@destination
, что сокращенно от:
ssh -o "ProxyJump user@jumphost" user@destination
Это можно сократить
ssh dest
с помощью~/.ssh/config
фрагмента как такового:источник
Единственное решение, которое я знаю для этого, это сценарии ssh с Belier :
Некоторое время назад я обнаружил этот файл README.sshhop на домашней странице MIT Lincoln Laboratory, но не смог найти дополнительную информацию об этом. Кто-нибудь знает больше?
источник