web-dev-qa-db-fra.com

Erreur GitHub: clé déjà utilisée

J'ai créé deux comptes GitHub. Un pour mon utilisateur de travail et un pour mon moi personnel. Je devais rattraper un peu mon travail et, en tant que tel, cloner mon rapport de travail sur mon PC personnel. Afin de faire de simples "maîtres d’origine Git Push Origin", sans avoir à entrer mon nom d’utilisateur et mon mot de passe, je veux simplement ajouter ma clé publique de mon ordinateur personnel au rapport de travail. Cependant Github donne cette erreur:

Error: Key already use

Après un peu de recherche sur Google, je suis tombé sur ce link qui indique "Pour résoudre le problème, supprimez la clé de l’autre compte ou du référentiel et ajoutez-la à votre compte". Nous avons ajouté la clé publique de mon domicile à github pour pouvoir coder sur mes propres projets. Après tout, je veux pouvoir coder sur mon dépôt de travail en utilisant à la fois mon ordinateur de travail et mon ordinateur personnel.

Comment pouvez-vous ajouter plusieurs "mêmes" clés publiques sans que Github ne jette cette erreur et pourquoi, dans le monde, cette erreur est-elle générée?

18
John Crawford

La clé pourrait déjà être utilisée sur d'autres projets github en tant que clé de déploiement, c'est un peu difficile à trouver mais elle est exécutée:

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

pour trouver la clé utilisée, supprimez-la puis relancez-la dans le bon utilisateur/dépôt. cela m'a été très utile

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


edit: comme l'a souligné @ mikhail-morgunov, cela ne fonctionne pas tout le temps, vous devriez vraiment utiliser cet extrait uniquement si la clé privée par défaut id_rsa SSH est celle de votre github

c'est un extrait où le nom de la clé a été extrait: 

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

changez KEY_NAME avec le nom de votre clé privée SSH et vous serez prêt à partir

19
makevoid

Vous pouvez créer une paire de clés supplémentaire, par exemple id_rsa_personal.pub, et l'ajouter au compte Github.

Ensuite, créez/modifiez le fichier .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

Le fichier ci-dessus vous aidera à utiliser plusieurs comptes Github. Pour des informations générales, reportez-vous aux réponses à à cette question .

Ensuite, vous devrez modifier votre URL distante .git/config pour qu'elle pointe vers: 

git@github-personal:<gh_username>/<gh_reponame>.git

Plutôt que d'habitude: 

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

25
Bijendra

John a commenté que cela ne fonctionnait pas pour lui.

Peut-être que l'étape qui vous manque, c'est que vous devez modifier votre URL distante .git/config pour qu'elle pointe sur git@github-personal/<reponame>.git etc., plutôt que le [email protected]/<reponame>.git habituel.

7
James Ferguson

vous pouvez utiliser la même clé ssh pour différents référentiels github mais ne pouvez pas utiliser la même clé ssh pour plusieurs référentiels (c'est-à-dire, le même référentiel à partir de différentes connexions ou à partir de sources) car github n'autorisera pas la même clé de déploiement plusieurs fois

Vous pouvez créer une clé différente dans votre ordinateur sans déranger vos clés existantes, comme par exemple: ssh-keygen -t rsa -C "[email protected]" 
Indiquez maintenant votre nom de fichier pour identifier votre clé pour le référentiel

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

Voir https://developer.github.com/guides/managing-deploy-keys/#deploy-keys pour plus de détails.

0
HariKishore