it-roy-ru.com

Ошибка GitHub: ключ уже используется

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

Error: Key already use

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

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

18
John Crawford

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

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

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

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


edit: как указал @ mikhail-morgunov, это не всегда работает, вы должны действительно использовать этот фрагмент, только если закрытый ключ id_rsa SSH по умолчанию - ваш github по умолчанию

это фрагмент, где имя ключа было извлечено: 

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

замените KEY_NAME на имя вашего закрытого ключа SSH, и все будет хорошо

19
makevoid

Вы можете создать еще одну пару ключей, скажем id_rsa_personal.pub, и добавить ее в учетную запись 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. Для справочной информации, обратитесь к ответам на этот вопрос .

Затем вам нужно будет изменить удаленный URL .git/config так, чтобы он указывал на: 

[email protected]:<gh_username>/<gh_reponame>.git

Скорее, чем обычно: 

[email protected]:<gh_username>/<gh_reponame>.git

25
Bijendra

Джон сказал, что это не сработало для него.

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

7
James Ferguson

вы можете использовать один и тот же ключ 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 для получения подробной информации.

0
HariKishore