wake-up-neo.net

GitHub-Fehler: Schlüssel wird bereits verwendet

Ich habe zwei GitHub-Konten erstellt. Einer für meinen Arbeitsnutzer und einer für mich persönlich. Ich musste einige Arbeiten nachholen und klopfte mein Work Repo auf meinen PC. Um einfache "git Push Origin master" -Objekte auszuführen, ohne dabei den gesamten Benutzernamen und das Kennwort einzugeben, möchte ich einfach meinen öffentlichen Schlüssel von meinem Heim-PC zum Work-Repo hinzufügen. Github gibt jedoch diesen Fehler aus:

Error: Key already use

Nach etwas Googeln stieß ich auf diesen link , der besagt: "Um das Problem zu beheben, entfernen Sie den Schlüssel aus dem anderen Konto oder dem Repository und fügen Sie ihn Ihrem Konto hinzu." Natürlich gibt es einen doppelten Schlüssel, wie ich hinzugefügt habe mein öffentlicher öffentlicher Schlüssel für github, damit ich meine eigenen persönlichen Projekte programmieren kann. Schließlich möchte ich in der Lage sein, zu meinem Work-Repo sowohl mit meinem Work-PC als auch mit meinem persönlichen PC zu codieren.

Wie kann man mehrere "gleiche" öffentliche Schlüssel hinzufügen, ohne dass Github diesen Fehler wirft, und auch warum in der Welt, wird dieser Fehler überhaupt erst ausgelöst?

18
John Crawford

Der Schlüssel könnte bereits in anderen github-Projekten als Bereitstellungsschlüssel verwendet werden. Das ist etwas schwierig zu finden, aber auszuführen:

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

um den verwendeten Schlüssel zu finden, löschen Sie ihn und lesen Sie ihn erneut im richtigen Benutzer/Repo. das war sehr nützlich für mich

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


edit: Wie @ mikhail-morgunov darauf hinweist, das funktioniert nicht immer. Sie sollten dieses Snippet wirklich nur dann verwenden, wenn der Standardschlüssel id_rsa SSH der Standardschlüssel Ihres Githubs ist

dies ist ein Ausschnitt, in dem der Schlüsselname extrahiert wurde: 

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

Ändern Sie KEY_NAME mit dem Namen Ihres privaten SSH-Schlüssels, und Sie können loslegen

19
makevoid

Sie können ein weiteres Schlüsselpaar erstellen, beispielsweise id_rsa_personal.pub, und es dem Github-Konto hinzufügen.

Als Nächstes erstellen/bearbeiten Sie die .ssh/config-Datei. 

# 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

Die obige Datei hilft Ihnen, mehr als ein Github-Konto zu verwenden. Hintergrundinformationen finden Sie in den Antworten auf diese Frage .

Als Nächstes müssen Sie Ihre .git/config-Remote-URL so ändern, dass sie auf Folgendes verweist: 

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

Anstelle der üblichen: 

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

25
Bijendra

John kommentierte, dass es für ihn nicht funktionierte.

Möglicherweise fehlt der Schritt, den Sie vermissen, darin, dass Sie Ihre .git/config-Remote-URL so ändern müssen, dass sie auf [email protected]/<reponame>.git usw. verweist, anstatt auf den üblichen [email protected]/<reponame>.git.

7
James Ferguson

sie können denselben ssh-Schlüssel für verschiedene github-Repositorys verwenden, jedoch nicht denselben ssh-Schlüssel für viele Repositorys (d. h. dasselbe Repository von verschiedenen Logins oder von verzweigten), da github denselben Deployment-Schlüssel nur einmal für ein Repository zulässt

Sie können einen anderen Schlüssel in Ihrem Computer erstellen, ohne Ihre vorhandenen Schlüssel zu stören, wie zum Beispiel: ssh-keygen -t rsa -C "[email protected]" 
Geben Sie jetzt Ihren Dateinamen an, um Ihren Schlüssel für das Repository zu identifizieren

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

Siehe https://developer.github.com/guides/managing-deploy-keys/#deploy-keys für Einzelheiten.

0
HariKishore