Скажем, у меня есть следующая настройка:
ssh ssh
A ------> B ------> C
^ ^
using A's using B's
key key
Я пытаюсь настроить это в .ssh/config
в хозяине A
следующим образом:
Host C
HostName C.com
IdentityFile path_to_key_1
ProxyCommand ssh -i path_to_key_2 B -W %h:%p
Которые идентифицируют файл и путь к path_to_key_1
и path_to_key_2
?
Например, делает path_to_key_1
ссылаться на путь в A
и path_to_key_2
на путь в B
? Или они оба должны быть путями в A
?
Ваш .ssh/config
на хосте A
должен выглядеть следующим образом:
Host B
HostName B.com
IdentityFile path_to_key_2
Host C
HostName C.com
IdentityFile path_to_key_1
ProxyCommand ssh B -W %h:%p
Обе path_to_key
файлы должны существовать на A
.
Я использую аналогичную конфигурацию в производстве для доступа к серверам nagios nrpe.
Изменить: изменен хост C
config, удалено -i
часть от ProxyCommand ssh -i path_to_key_2 B -W %h:%p
поскольку это было лишним
В ProxyCommand
выполняется из 'A', это устанавливает соединение с B, которое создает только туннель к «C», который затем используется для «A» для подключения к «C». Ни в коем случае не открывается оболочка на B или какие-либо ssh-ключи загружаются из B.
Если вам требуется ключ для аутентификации, который живет только на «B» для аутентификации на «C», вы не сможете использовать «ProxyCommand».