2014-06-10 2 views
1

У меня возникла следующая проблема.git открытый ключ для большего количества репозиториев

У меня есть 2 проекта, и я использую github. 1-й проект прошел гладко, я создал открытый ключ, ввел кодовую фразу и нажал на github. без проблем.

2-й проект, я создал другой открытый ключ, и когда я хочу нажать на второй репозиторий, он продолжает запрашивать парольную фразу для 1-го кода /.ssh/id_rsa. но id_rsa содержит мой открытый ключ для 1-го проекта. поэтому, конечно, когда я ввожу кодовую фразу, она не будет работать, потому что она попытается вставить 1-й репо вместо 2-го.

Как создать открытый ключ и сообщить git, что я хочу нажать на другое репо?

спасибо.

ответ

3

Вы должны объявлять различные ключи SSH в ~/.ssh/config файл, как я объяснил в «How to manage multiple ssh keys in the ~/.ssh directory»

Я бы рекомендовал не использовать имя по умолчанию для ключей, а:

~/.ssh/proj1 
~/.ssh/proj1.pub 
~/.ssh/proj2 
~/.ssh/proj2.pub 

И тогда есть ~/.ssh/config как:

Host ghproj1 
    User   git 
    Hostname  github.com 
    IdentityFile ~/.ssh/proj1 
    IdentitiesOnly yes 
Host ghproj2 
    User   git 
    Hostname  github.com 
    IdentityFile ~/.ssh/proj2 
    IdentitiesOnly yes 

Вы должны изменить происхождение URL в обоих РЕПО:

cd /path/to/cloned/proj1 
git remote set-url origin ghproj1:yourProject1 

cd /path/to/cloned/proj2 
git remote set-url origin ghproj1:yourProject2 

Смотри на:

URL как ghproj1:yourProject1 является SSH один, который будет явно использовать ключ, указанный в ~/.ssh/config для записи ghproj1.

В случае с ФП в (answer below), правильный URL будет:

~/.ssh/id_recaprojekt 

Примечание: вам нужно указать путь к закрытому ключу (частный, не публично, а не .pub)

cd /path/to/cloned/plastickychirurg 
git remote set-url origin plastickychirurg:michalfeher/plastickychirurg.git 

cd /path/to/cloned/recaprojekt 
git remote set-url origin recaprojekt:michalfeher/recaprojekt.git 

Обратите внимание, что я добавил «Hostname» в записи Host.

Вся идея этих записей в ~ /.SSH/конфигурационный файл не (повторить не) ставить git или github.com в URL (это делается для вас элементов, связанных с каждой записи):

Итак:

[email protected]:michalfeher/recaprojekt.git 

является так же, как:

recaprojekt:michalfeher/recaprojekt.git 

за исключением второго URL будет использовать SSH ключ

+0

Спасибо вам ответить @VonC! Но, видимо, я делаю что-то неправильно. Я приведу вам свои примеры. –

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