2016-05-24 6 views
0

В ~/.ssh/config у меня есть следующие настройки:Как сообщить git использовать определенный идентификатор ssh IdentityFile при клонировании с определенного хоста?

Host server1 
Hostname myhostname1 
User nsurname 
IdentityFile "~/.ssh/git1/id_rsa" 

Host server2 
Hostname myhostname2 
User nsurname 
IdentityFile "~/.ssh/git2/id_rsa" 

Затем я запустить git clone команду, чтобы загрузить хранилище из myhostname1. Он работает только в том случае, если у меня есть id_rsa, расположенный прямо в '~/.ssh /'. Итак, похоже, что я должен передать дополнительный параметр git clone, чтобы он мог найти id_rsa внутри ~/.ssh/git1, а не ~/.ssh.

Как это сделать?

+0

http://superuser.com/questions/232373/how-to-tell-git-which-private -key-to-use дает вам несколько вариантов, чтобы носить в разных случаях. –

ответ

0

Вы должны использовать

Host myhostname1 
IdentityFile "~/.ssh/git1/id_rsa" 

в вашей конфигурации, так что ssh способен спариваться, что имя хоста с помощью этого ключа. С предоставленной вами конфигурацией он будет использоваться только для .

Если вы хотите использовать этот ключ для всех хостов, есть возможность установить

Host * 
IdentityFile "~/.ssh/git1/id_rsa" 
+0

Почему конфигурация, которую я предоставил, не может сопоставить «myhostname2» с ключом? Для 'server2' я использую те же настройки:' Host server2 Hostname myhostname2 Пользователь nsurname IdentityFile "~/.ssh/git2/id_rsa" '. Более того, если я удалю 'server2' и оставлю только' server1' с ключом, помещенным внутри подпапки ssh, то это не сработает. Он видит только ключи, помещенные непосредственно в 'ssh' ... – Klue

+0

. Посмотрите страницу руководства для' ssh_config'. Это объясняет это довольно хорошо. Ключевое слово 'Host' соответствует вашей командной строке. Не ключевое слово 'Hostname'. – Jakuje

0

У вас может быть несколько закрытых ключей (файлы идентификации) в ~ /. Папка ssh под разными именами говорит id_rsa_github, id_rsa_github и т. д. и ссылается на них в ~ /. ssh/config, как вы уже сделали.

Смежные вопросы