9

Как сказать git, какой закрытый ключ использовать? Я хотел бы использовать конкретный ключ 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.

2 ответа2

4

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

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 чтобы избежать опечаток. Если для USER1 существует опечатка пути ~/.ssh/config идентификационного файла, то вместо этого будет использоваться неправильный ключ (ключ USER2).

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

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

1

Используйте IdentitiesOnly yes под этими хостами в .ssh/config.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .