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