Herausfinden, wo der Schlüssel verwendet wurde
Um zu ermitteln, wo der Schlüssel bereits verwendet wurde, öffne ein Terminal, und gib den Befehl ssh
ein. Verwende das Flag -i
, um den Pfad zu dem Schlüssel anzugeben, den du überprüfen möchtest:
$ ssh -T -ai ~/.ssh/id_rsa git@HOSTNAME
# Connect to Ihre GitHub Enterprise Server-Instance using a specific ssh key
> Hi USERNAME! You've successfully authenticated, but GitHub does not
> provide shell access.
Der Benutzername in der Antwort ist das Konto für Ihre GitHub Enterprise Server-Instance, an das der Schlüssel derzeit angefügt ist. Wenn die Antwort eine Zeichenfolge wie „username/repo“ enthält, wurde der Schlüssel als Bereitstellungsschlüssel an ein Repository angefügt.
Um zu erzwingen, dass SSH nur den in der Befehlszeile angegebenen Schlüssel verwendet, verwende -o
zum Hinzufügen der Option IdentitiesOnly=yes
:
ssh -v -o "IdentitiesOnly=yes" -i ~/.ssh/id_rsa git@HOSTNAME
Das Problem beheben
Um das Problem zu beheben, entferne zuerst den Schlüssel aus dem anderen Konto oder Repository, und füge ihn dann deinem Konto hinzu.
Wenn du keine Berechtigung zum Übertragen des Schlüssels besitzt und dich nicht an einen Benutzer wenden kannst, der über diese Berechtigung verfügt, entferne das Schlüsselpaar, und generiere einen vollständig neuen Schlüssel.
Schlüssel bereitstellen
Sobald ein Schlüssel als Deployment-Schlüssel an ein Repository angehängt wurde, kann er nicht für andere Repositorys verwendet werden. Wenn dieser Fehler beim Einrichten von Bereitstellungsschlüsseln auftritt, findest du entsprechende Informationen unter Verwalten von Bereitstellungsschlüsseln.