2014-01-16 3 views
10

Я создал две учетные записи GitHub. Один для моего рабочего пользователя и один для моего личного. Мне нужно было наверстать упущенное на какой-то работе и таким образом клонировать мою работу репо на мой персональный компьютер. Для того, чтобы сделать простой «git push origin master», он не вводит мое имя пользователя и пароль, все время я просто хочу добавить свой открытый ключ из своего домашнего компьютера в рабочее репо. Однако Github дает эту ошибку:Ошибка GitHub: ключ уже используется

Error: Key already use 

После немного погуглить я наткнулся на эту link, которая гласит «Для того, чтобы решить эту проблему, удалите ключ из другого аккаунта или хранилища и добавить его в свой счет», конечно, является дублирующим ключом, поскольку я добавил свой домашний открытый ключ в github, чтобы я мог кодировать свои личные проекты. В конце концов, я хочу, чтобы иметь возможность кодировать мое рабочее репо, используя как мой рабочий компьютер, так и персональный компьютер.

Как вы можете добавить несколько «одинаковых» открытых ключей без того, чтобы Github выбрасывал эту ошибку, а также почему в мире это ошибка, возникшая в первую очередь?

+1

Зачем вам нужны те же ключи? Просто создайте новый ключ и подключите его к своей учетной записи. – PeeHaa

+0

просто создайте другую пару ключей и сохраните ее локально, а открытая часть второй пары добавлена ​​в другую учетную запись github. –

+2

GitHub будет использовать ключ как средство для идентификации вас при подключении к ним через SSH. Таким образом, у вас не может быть нескольких учетных записей с одним и тем же ключом, так как GitHub не сможет определить, какие из ваших учетных записей вы хотите использовать. – poke

ответ

12

Ключ может быть уже используется в других проектах GitHub как ключ развертывания, это немного сложно найти, но запустить:

ssh -T -ai ~/.ssh/id_rsa [email protected]

найти используемый ключ, удалить его, а затем readd его снова в правом пользователя/репо. это было очень полезно для меня

от: https://help.github.com/articles/error-key-already-in-use/#finding-where-the-key-has-been-used

13

Вы можете создать еще один ключ id_rsa_personal.pub и добавить его в учетную запись github. Чтобы получить доступ к учетным записям github с того же ПК, отредактируйте файл .ssh/config.

# Default GitHub 
    Host github.com 
     HostName github.com 
     User git 
     IdentityFile ~/.ssh/id_rsa 

    Host github-public 
     HostName github.com 
     User git 
     IdentityFile ~/.ssh/id_rsa_public 

    Host github-personal 
     HostName github.com 
     User git 
     IdentityFile ~/.ssh/id_rsa_personal 

Вышеупомянутый файл поможет вам параллельно с двумя учетными записями github. Также и может относиться Multiple ssh keys

Джеймс Фергюсон добавил этот важный бит информации:

... you [may] need to alter your .git/config remote url to point to [email protected]/<reponame>.git etc., rather than the usual [email protected]/<reponame>.git

+0

Это, похоже, не сработало. Я все еще получаю разрешение. Это мой файл ~/.ssh/config выглядит следующим образом: http://pastebin.com/JNiTUbVU –

+0

И вы добавили '~/.ssh/id_rsa.pub' для пользователя компании и' ~/.ssh/John .pub' для себя? Но в любом случае правильный подход заключается не в создании конкретного пользователя для компании, а для организации. –

+0

Отлично работает на моей стороне. Благодаря! – D6mi

5

система Глупо не позволит мне прокомментировать другой ответ, потому что у меня не хватает репутации, но Джон заметил, что это не сработало для него.

Возможно шаг вы пропустили это вы должны изменить свой .git/конфигурации удаленного URL, чтобы указать на [email protected]/<reponame>.git и т.д .., а не обычный [email protected]/<reponame>.git

0

вы можете использовать один и тот же ключ SSH для различных GitHub хранилищ, но не можете использовать один и тот же ключ SSH для многих хранилищ (то есть репозиторий из разных логинов или раздвоенного) в GitHub не позволит же ключа развернуть более чем один раз для хранилища

Вы можете создать другой ключ в машине, не нарушая существующие ключи, как: ssh-keygen -t rsa -C "[email protected]"
Теперь ваше имя файла, чтобы определить ключ для хранилища

Enter file in which to save the key (/home/demo/.ssh/id_rsa):/home/demo/.ssh/id_rsa_mykey<br> 

Для получения более подробной информации см. https://developer.github.com/guides/managing-deploy-keys/#deploy-keys.

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