2 Stimmen

Erlaubnis verweigert (öffentlicher Schlüssel): Mehrere Repositories und RSA-Schlüssel mit Github

Ich erhalte die Fehlermeldung Berechtigung verweigert (öffentlicher Schlüssel), wenn ich eine eine ssh git@github.com Anfrage. Ich habe das Gefühl, dass dies darauf zurückzuführen ist, dass mein .ssh-Ordner nicht gefunden werden kann. Hier ist der Hintergrund zu dem, was ich habe bisher getan habe:

Ich habe github zuvor so konfiguriert, dass es funktioniert mit meinem Repository: repo1. Ich folgte der Anleitung für Einsteiger auf der github-Website und richtete mein Repository ein als:

/home/CodeSherpa/repo1/

mit Sicherheitskram hier:

/home/CodeSherpa/.ssh

Ich habe id_rsa und id_rsa.pub konfiguriert entsprechend der Anleitung und setzte die öffentlichen Schlüssel auf Github in meinem öffentlichen Schlüssel. Ich habe dann getestet mit

ssh git@github.com

und führte einige Push/Pull/etc-Befehle aus und alles funktionierte einwandfrei.

Jetzt möchte ich noch ein paar weitere Repositories hinzufügen. Ich habe meine lokale Verzeichnisstruktur verschoben so umgestellt, dass sie wie folgt aussieht:

/home/CodeSherpa/repos/

*repo1 *repo2 *repo3

Und ich habe die passenden Repositories auf Github eingerichtet / konfiguriert.

Ich bin der Admin und sollte Zugang zu allem haben. Ich möchte einem Entwickler Zugriff auf Repo1 & Repo2, aber NICHT auf Repo3 geben und einem anderen Entwickler Zugriff auf alle Repos.

MEIN AKTUELLES PROBLEM IST dass, wenn ich versuche, die neuen Repositories zu initialisieren auf meinem lokalen Dateisystem zu initialisieren, erhalte ich immer:

"Erlaubnis verweigert (öffentlicher Schlüssel)" (unter Verwendung von ssh git@github.com)

MEINE FRAGE LAUTET Muss ich für jedes neue Repository einen lokalen RSA-Schlüssel haben? Derzeit ist mein .ssh-Ordner dort, wo ich ihn ursprünglich für mein erstes Repository eingerichtet habe:

/home/CodeSherpa/.ssh

Muss ich das tun?

> /home/CodeSherpa/repos/repo1/.ssh/id_rsa
> /home/CodeSherpa/repos/repo2/.ssh/id_rsa
> /home/CodeSherpa/repos/repo3/.ssh/id_rsa

Und dann richten Sie drei eindeutige öffentliche Schlüssel für jedes Projektarchiv ein auf Github?

Vielen Dank für Ihre Hilfe.

2voto

Augusto Punkte 27549

Normalerweise benötigen Sie nur einen Schlüssel pro Benutzer, nicht pro Repository. Mein Vorschlag wäre:

  • alle Schlüssel auf Ihrem Computer löschen
  • alle Ihre Schlüssel in Github löschen
  • wiederholen Sie den Vorgang, nur einmal

BUT Wenn Sie beabsichtigen, einen Benutzer pro Repository zu haben, dann brauchen Sie einen ssh-Schlüssel pro Benutzer. Um dies zu tun:

  • folgen Sie den Anweisungen in github 3 Mal und geben Sie jedem Schlüssel einen anderen Dateinamen.
  • wenn Sie einen dieser Schlüssel verwenden wollen, führen Sie ssh-add [path_to_user_1_key] ** Von nun an verbinden Sie sich mit Github als user_1
  • Wenn Sie sich als ein anderer Benutzer, zum Beispiel user_2, verbinden müssen, führen Sie ssh-add -D et ssd-add [path_to_user_2_key]

Ich verwende beispielsweise denselben SSH-Schlüssel für Github und Bitbucket und habe auf beiden Servern einige Repos.

1voto

thekindofme Punkte 3786
  • In Github (an den meisten Orten) ist ein SSH-Schlüssel an ein Benutzerkonto gebunden (weil er verwendet wird, um gegenüber Github zu verifizieren/authentifizieren, dass man wirklich derjenige ist, der man vorgibt zu sein), nicht an ein Repo.
  • Sie sollten in der Lage sein, jeden anderen Github-Benutzer als Mitwirkenden zu jedem Ihrer Projekte hinzuzufügen.
  • Durch das Hinzufügen von Mitstreitern können Sie den Zugriff auf Ihre Projekte auf Github kontrollieren. Sie müssen dafür keine mehrfachen SSH-Schlüssel erstellen.
  • Sie können einen Mitwirkenden zu Ihrem Projekt hinzufügen, indem Sie zu "Repository Administration" -> "Collaborators" gehen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X