2016-04-01 3 views
0

Я не могу на всю жизнь понять, почему моя конфигурация 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?

Действительно смущенно, что происходит здесь.

+0

No. 'IdentitiesOnly' контролирует, какой ключ используется для проверки подлинности, но не влияет на список ключей, доступных в агенте. – larsks

+0

Ох. Тогда есть ли способ контролировать, какие ключи доступны в моем агенте для каждого сервера? –

+0

Не совсем, нет. Я имею в виду, вы могли бы взломать что-то с несколькими местными агентами, но, вероятно, это было бы некрасиво. – larsks

ответ

1

Действительно смущенный относительно того, что здесь происходит.

ForwardAgent опция перенаправляет подключение к агенту со всеми ключами внутри и не пересылает ваш местный ~/.ssh/config к удаленному хосту. То, что вы делаете на хосте work, зависит от вашей конфигурации на этом хосте.

Что вы пытаетесь сделать с этим?

+0

Bitbucket запрещает использование одного и того же ключа SSH между учетными записями Bitbucket. У меня есть рабочий счет и личная учетная запись. Когда я пытаюсь нажать/fetch/merge/etc., Я хочу, чтобы удаленный сервер использовал правильный SSH-ключ. –

+0

Вы даже прочитали мой ответ? – Jakuje

+0

Да, и я понимаю ваш ответ. Но вы спросили, что я пытаюсь сделать с этим. Я пытаюсь нажать/извлечь/слить/и т. Д. на моем удаленном сервере. –

0

Вам необходимо обновить свои ключи ssh с их эквивалентной учетной записью битбакет первым на своем сайте (работать с пользователем work_rsa, пользователем с user_rsa). Тогда, возможно, это может помочь.

Host    bitbucket-work 
HostName   bitbucket.org 
IdentitiesOnly  yes 
IdentityFile  ~/.ssh/work_rsa 
User    work 

ssh bitbucket-work