Ich habe mehrere SSH-Schlüssel und ich habe auch Konto auf Bitbucket und Github. Wie auch immer ich Pull benutze, es gibt mir Fehler
:/var/www/proj$ git pull origin master
conq: repository access denied.
fatal: The remote end hung up unexpectedly
oder wenn ich die Bitbucket-Website ssh es gibt Fehler ass öffentlichen Schlüssel verweigert
:~$ ssh [email protected]
Permission denied (publickey).
Wie kann ich dieses Problem lösen und verschiedene Schlüssel mit verschiedenen Konten verwenden?
Antworten:
Dies wird alles von der Website und dem Stackoverflow zusammengetragen. Ich hoffe, dies hilft denjenigen, die neu bei ssh sind
Sie können also viele SSH-Schlüssel haben
Hinweis: Wir müssen dann zum ssh-agent hinzufügen, wahrscheinlich wird id_rsa hinzugefügt, also müssen wir den anderen privaten Schlüssel hinzufügen
Jetzt haben wir beide ssh-Schlüssel zu ssh-agent hinzugefügt
Wir haben einen für Bitbucket und einen für Github
Also erstellen wir eine solche Konfigurationsdatei
Hinweis: Ich verwende 2 verschiedene Schlüssel für 2 verschiedene Konten auf Bitbucket und einen für Github.
Jetzt müssen wir dem Git-Repository mitteilen, welcher Host verwendet werden soll, damit ich diesen speziellen SSH-Schlüssel für dieses spezielle Konto erhalte
wechseln
[email protected]/yyyproject.git
zugit@bit-yyyuser:yyyuser/yyyproject.git
also im Projektordner und füge die Remote-URL hinzu
in einem anderen Projekt
Jetzt können Sie einfach drücken und ziehen
und ein anderes Projekt
Jetzt habe ich das Github-Projekt nicht auf dem lokalen Computer, daher müssen wir das Projekt klonen, aber wir müssen die URL zum Klonen ein wenig ändern
Unsere URL ist wie folgt
Da wir es mit bestimmten Schlüsseln klonen müssen, müssen wir nur den Hostnamen mit dem von uns definierten Host ändern
wie in der Konfigurationsdatei definiert
und jetzt können wir klonen
Wir haben verschiedene SSH-Schlüssel für verschiedene Hosts identifiziert, einen für Git und einen für Bitbucket. Jetzt weiß das System, welche SSH-Schlüssel mit welchem Host verwendet werden sollen.
Jetzt können wir leicht ziehen, schieben.
quelle
Ich konfiguriere
~/.ssh/config
wie folgt:Verwenden Sie dann den benutzerdefinierten Hostnamen anstelle der echten Domain in der Git-URL:
Weitere Informationen finden Sie hier: http://itblog.study.land/how-to-specify-different-ssh-keys-for-git-push-for-a-given-domain/
quelle