Мой сценарий:
У меня есть Server A
дома, и Server B
у родителей. У меня также есть Laptop A
и Laptop B
дома. Я делаю всякие странные ssh-прыжки - я могу подключиться Laptop A -> Server A -> Server B
. Или Laptop B -> Server A -> Laptop A
. ИлиServer A -> Server B
У меня настроены связки ключей на всех этих машинах, и как настоящий компьютерщик, заботящийся о безопасности, я
eval `keychain --clear`
в моем .zlogin
досье.
Моя проблема в том, что даже если я разблокирую свои ключи на Laptop A
, как только я подключусь кServer A
нему, он пытается использовать связку ключей/ssh-агент на сервере A, поэтому мне приходится разблокироватьтеКлючи тоже. У меня ForwardAgent
тоже есть настройки на всех этих машинах. Я бы предпочел, чтобы произошло что-то вроде этого:
- Авторизоваться
Laptop A
- Разблокировать
Laptop A
ключи - ssh к
Server A
- ssh в
Server B
- используя ключи изLaptop A
.
Как я могу это сделать?
решение1
Это не дает прямого ответа на ваш вопрос, но дает вам альтернативный вариант для рассмотрения, который может вам помочь. Обычно я настраиваю свой $HOME/.ssh/config
файл следующим образом:
IdentityFile ~/.ssh/my-computers
# infrastructure
Host lap1
User sam
#PubkeyAuthentication no
ProxyCommand ssh [email protected] nc lap1.internal.local %p
Затем, когда я хочу подключиться к своей системе lap1.internal.local, когда я вне дома, я просто делаю:
ssh lap1
Я обычно копирую свои открытые ключи ssh-copy-id на другие серверы, на которые хочу войти. Дайте мне знать, если хотите, чтобы я объяснил подробнее.