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?
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
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
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.
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.