У меня есть три системы, клиент, на котором установлен только клиент SSH, а также серверы Server_1 и Server_2. Я использую публичную аутентификацию SSH и могу подключаться по SSH с клиента как к серверу Server_1, так и к серверу Server_2. Я сохранил один и тот же открытый ключ для сервера Server 1, и теперь я хочу подключиться по SSH с сервера Server 1 на сервер Server 2 с помощью переадресации агента, и я хочу, чтобы мой закрытый ключ оставался только на клиенте. Пожалуйста, помогите мне как можно скорее, как мне реализовать этот сценарий? Я использую эту ссылку, но не знаю, как это сделать.
решение1
Сначала вам нужно вызвать ssh-agent
своего клиента, чтобы он запомнил ваш ключ
ssh-agent -t 3600 ~/.ssh/private_key_rsa
(предполагая, что ваш ключ хранится в ~/.ssh/private_key_rsa
, вы также можете не указывать , -t 3600
если вы хотите бесконечного срока службы)
затем вы просто подключаетесь по ssh к одному из ваших серверов, используя -A
опцию
ssh -A server1
оттуда вы сможете подключиться по ssh к server2
ssh server2
Если вы не хотите указывать эту -A
опцию каждый раз, вы можете добавить следующее ~/.ssh/config
(на клиенте и, по желанию, на обоих серверах):
Host server1
ForwardAgent yes
Host server2
ForwardAgent yes
Это работает для любого количества серверов. Чтобы сохранить ~/.ssh/config
краткость, вы можете ввести подстановочные знаки, например
Host server?
ForwardAgent yes
решение2
Переадресация хоста сервера на локальный хост:
ssh -L localhost:22:localhost:22 user@host
или
ssh -N -f -L serverhost:22:localhost:22 user@server1
Прочитал ваш вопрос еще раз.
Вы хотите подключиться по ssh к server1:
ssh user@server1
Затем вам нужно подключиться по ssh к server2:
В новом терминале из клиента выполните:
ssh user@server1
ssh user@server2
Тогда у вас есть 2 соединения:
- клиент-сервер 1
- клиент к серверу 1 ==> сервер 2
Если вы хотите иметь:
- клиент-сервер 1
- клиент к серверу 2 (с тем же ключом.)
Просто выполните следующую команду.
На клиенте:
Используйте tmux или откройте 2 терминала
ssh user@server1
В новом терминале:
ssh user@server2
решение3
Простой ответ — добавить -A
такой флаг:
ssh -A [user]@[hostname]