Допустим, у меня есть следующая настройка:
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
?
ProxyCommand
выполняется из 'A', это устанавливает соединение с B, которое создает только туннель к 'C', который затем используется для «A» для подключения к «C». Ни в коем случае не открывается оболочка на B или какие-либо ssh-ключи, загруженные из B.
Если вам требуется ключ для аутентификации, который живет только на «B» для аутентификации на «C», вы не сможете использовать "ProxyCommand".
Ваш .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
, удалена часть -i
из ProxyCommand ssh -i path_to_key_2 B -W% h:% p
, поскольку она была лишней