Использовать указанный ключ от ssh-agent


11

Вдоль линии , как сказать мерзавца , который частный ключ для использования? Я хотел бы использовать конкретный ключ SSH в данной ситуации.

Моя проблема в том, что даже когда я указываю '-i что-то', ssh использует ключи от моего ssh-agent в порядке их добавления.

Моя конкретная ситуация:

  • У меня есть два пользователя github, каждый со своим собственным ключом, который я хотел бы - например, через ssh-config - для каждого клона указать, какой ключ использовать:

    Хост USER1.git

    Имя хоста github.com

    Пользователь git

    IdentityFile ~ / .ssh / USER1.id_rsa

ssh -vt USER1.git

будет по-прежнему использовать USER2.id_rsa, если этот ключ был впервые добавлен в ssh-agent.

Ответы:


5

Я наконец получил это к работе:

Host USER1.git
  User git
  HostName github.com
  IdentityFile ~/.ssh/USER1.id_rsa

Host USER2.git
  User git
  HostName github.com
  IdentityFile ~/.ssh/USER2.id_rsa
  • Отступы имеют значение.
  • Сделайте ssh-add -lи убедитесь, что оба ваших ключа были добавлены.
    • Скопируйте / вставьте каждый путь ssh-add -lв соответствующую строку, ~/.ssh/configчтобы избежать опечаток. Если ~/.ssh/configдля USER1 существует опечатка пути идентификационного файла, то будет использоваться неправильный ключ (ключ USER2).

Я получил инструкции в BitBucket. Они должны работать для GitHub, поскольку единственное отличие HostName: http://confluence.atlassian.com/pages/viewpage.action?pageId=271943168#ConfiguringMultipleSSHIdentitiesforGitBashMacOSXLinux-CreateaSSHconfigfile

Чтобы заставить это работать на удаленном сервере, используя переадресацию агента, попробуйте предложение @ stijn-hoop ниже (в разделе комментариев этого ответа).


3
Ваш последний комментарий о переадресации агента см. В этом ответе: superuser.com/questions/273037/…
Stijn Hoop

1

Используйте IdentitiesOnly yesниже этих хостов, в .ssh / config.


1
но тогда он не будет использовать агент и заставит меня вводить фразу-пароль для всех соединений с github
svrist

1
Да, вот как это работает. Вы не можете выбирать разные ключи при использовании ssh-agent. Один из способов - запустить несколько ssh-агентов и переключаться между ними, используя разные обертки для разных операций github или просто переключаясь между ssh-агентами (смена SSH_AUTH_SOCK)
Cougar

6
Приведенный выше комментарий неверен - вы МОЖЕТЕ выбрать личность из вашего ssh-агента. См. Также ответ, который я уже упоминал выше, superuser.com/questions/273037/…
Stijn Hoop

0

Дело в том, чтобы использовать файл открытого ключа внутри IdentityFileдирективы.

Host USER1.git
  User git
  HostName github.com
  IdentityFile ~/.ssh/USER1.id_rsa.pub

Host USER2.git
  User git
  HostName github.com
  IdentityFile ~/.ssh/USER2.id_rsa.pub

Если мы укажем закрытый ключ внутри конфигурации SSH, агент SSH не сможет выбрать правильный ключ, если закрытый ключ зашифрован.

Аналогичный вопрос по stackexchange: https://unix.stackexchange.com/a/495785/264704

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.