Я не могу на всю жизнь понять, почему моя конфигурация SSH пересылает неправильный ключ. У меня есть два ключа, мы будем называть их home_rsa
и work_rsa
. Я сделал следующее:SSH IdentitiesOnly = yes пересылка всех моих ключей
eval `ssh-agent`
ssh-add -K ~/.ssh/home_rsa
ssh-add -K ~/.ssh/work_rsa
Вот мой ~/.ssh/config
файл:
Host home
ForwardAgent yes
HostName home.com
IdentityFile ~/.ssh/home_rsa
IdentitiesOnly yes
User home
Host work
ForwardAgent yes
HostName work.com
IdentitiesOnly yes
IdentityFile ~/.ssh/work_rsa
User work
Host bitbucket
IdentityFile ~/.ssh/home_rsa
Host bitbucket-work
IdentityFile ~/.ssh/work_rsa
Host bitbucket*
HostName bitbucket.com
User git
Когда я запускаю следующее ...
ssh work
ssh [email protected]
... Bitbucket сообщает, что я использую мой home
пользователя , хотя я четко зарегистрирован на своем сервере work
и должен переадресовать свой ключ work
. Если я добавлю свои SSH-идентификаторы в обратном порядке и запустим тот же код выше, Bitbucket сообщает, что я использую своего пользователя work
. Запустив ssh-add -l
с моего сервера work
, я вижу, что обе клавиши SSH пересылаются, но не так ли задание IdentitiesOnly yes
?
Действительно смущенно, что происходит здесь.
No. 'IdentitiesOnly' контролирует, какой ключ используется для проверки подлинности, но не влияет на список ключей, доступных в агенте. – larsks
Ох. Тогда есть ли способ контролировать, какие ключи доступны в моем агенте для каждого сервера? –
Не совсем, нет. Я имею в виду, вы могли бы взломать что-то с несколькими местными агентами, но, вероятно, это было бы некрасиво. – larsks