Github authentifiziert sich, lässt aber keinen Code-Push zu

Lesezeit: 4 Minuten

Ich bin der Eigentümer des “Projekt”-Repos, aber irgendwie kann ich nicht darauf zugreifen.

user@none ~/rails_projects/project $ git remote -v
origin  [email protected]:user/project.git (fetch)
origin  [email protected]:user/project.git (push)

Hier ist die Authentifizierungsprüfung:

user@none ~/rails_projects/project $ ssh -T [email protected]
Hi user/project! You've successfully authenticated, but GitHub does not provide shell access.

Push-Versuch:

user@none ~/rails_projects/project $ git push origin qa
ERROR: The key you are authenticating with has been marked as read only.
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

Irgendeine Idee, wie man diesen Fehler beheben kann?

  • Sind Sie Teil einer Organisation auf Github, zu der das Repository gehört? Es ist möglich, für bestimmte Mitglieder einen schreibgeschützten Zugriff auf Repositories einzurichten. Vielleicht ist dies der Fall. github.com/blog/674-introducing-organizations

    – tonedzwiedz

    1. November 2015 um 21:36 Uhr


  • Nein, ich bin der Eigentümer des Repos

    – Abraham

    1. November 2015 um 21:37 Uhr

Es ist wahrscheinlich, dass Sie mehr als einen SSH-Schlüssel haben, und der angezeigte Schlüssel ist ein Bereitstellungsschlüssel für das Repository und nicht einer der Schlüssel Ihres Kontos mit Schreibberechtigungen. Es gibt zwei Möglichkeiten, damit umzugehen:

  1. Entfernen Sie alle Schlüssel von Ihrem SSH-Agenten und fügen Sie nur den richtigen Kontoschlüssel erneut hinzu.

    ssh-add -D
    ssh-add /path/to/correct/key
    
  2. Verwenden HTTPS statt SSH. Sie können dies einfach tun, indem Sie Ändern der Remote-URL zum Ursprung um das HTTPS-Schema anstelle von SSH zu verwenden.

Das eine oder andere sollte funktionieren, es sei denn, Sie legen einfach die falschen Anmeldeinformationen vor.

  • Betrieb ssh-add -l ergab, dass der Schlüssel, den ich zu verwenden glaubte, nicht enthalten war. Also habe ich es hinzugefügt und jetzt funktioniert alles. Vielen Dank.

    – Abraham

    1. November 2015 um 22:02 Uhr

  • können Sie bitte ein Beispiel geben ssh-add /path/to/correct/key. Ich habe Verständnisschwierigkeiten.

    – Thavas Antonio

    17. August 2021 um 18:10 Uhr

Benutzer-Avatar
kenorb

Der Fehler:

FEHLER: Der Schlüssel, mit dem Sie sich authentifizieren, wurde als schreibgeschützt markiert.

könnte bedeuten, dass entweder Sie:

  • Sie versuchen, in das Repository zu pushen, indem Sie einen Schlüssel verwenden, der einem anderen Repository zugeordnet war (z. B. als Bereitstellungsschlüssel). überprüfen durch:

    $ ssh -i ~/.ssh/id_rsa [email protected]
    Hi user/project! You've successfully authenticated, but GitHub does not provide shell access.
    

    Und vergleichen user/project wenn es mit Ihrem Repository identisch ist, in das Sie pushen möchten.

  • Ihr Schlüssel wurde gesperrt (z. B. wurde er lange Zeit nicht verwendet), also müssen Sie ihn erneut bestätigen, indem Sie die Prüfung Ihrer vorhandenen SSH-Schlüssel in Ihrem GitHub-Benutzerprofil abschließen (/settings/ssh),

  • Sie verwenden mehrere Schlüssel gleichzeitig, überprüfen Sie durch: ssh-add -l (Wenn ja, entfernen Sie sie und fügen Sie die richtige wieder hinzu).

So:

Bitte stellen Sie sicher, dass Sie die richtigen Zugriffsrechte haben und das Repository existiert.

durch die folgenden einfachen Schritte:

  1. Notieren Sie Ihren RSA-Fingerabdruck, indem Sie:

    $ ssh-add -l
    2048 xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx (stdin) (RSA)
    
  2. Überprüfen Sie dann auf GitHub, ob es Ihrem Konto oder Repository hinzugefügt wurde:

    • für Rechnung, erkundigen Sie sich bei: /settings/ssh (SSH-Schlüssel),

      • falls fehlend bitte ergänzen,
      • wenn Schlüssel wird bereits verwendetfinden Sie heraus, welches andere Repo es verwendet (siehe unten), entfernen Sie es und fügen Sie es erneut in Ihrem Konto hinzu.
    • für ein bestimmtes Repository, überprüfen Sie unter: :name/:repo/settings/keys (Schlüssel bereitstellen),

    • Wenn Sie kein Repository-Besitzer sind, überprüfen Sie, ob Sie in der richtigen Gruppe sind (mit drücken Zugang).

Alternativ verwenden & neuen Schlüssel hinzufügen, allgemeine SSH-Probleme beheben oder Wenden Sie sich an den GitHub-Supportda sie es aus irgendeinem Grund widerrufen könnten (z. B. durch öffentliche Offenlegung).

  • Vielen Dank für “ssh -i ~/.ssh/id_rsa [email protected]”. Ich wusste nichts davon und es hat mich gerade gerettet, wie ich herausfinden kann, welches Repo einen bestimmten Schlüssel verwendet.

    – Didatus

    10. Januar 2021 um 10:52 Uhr

Es ist ein dummer Fehler, den ich gemacht habe, und die Lösung ist einfach. Löschen Sie einfach den Bereitstellungsschlüssel, fügen Sie denselben privaten Schlüssel oder einen neuen privaten Schlüssel erneut hinzu, und dieses Mal nur don't forget to mark the "Allow write access" option.

Vergessen Sie nur nicht, dies zu markieren, wenn Sie einen neuen SSH-Schlüssel in GitHub hinzufügen

  • fantastisch für 2021

    – dengApro

    30. Juni 2021 um 9:18 Uhr

Dies kann auch passieren, wenn Sie einen Bereitstellungsschlüssel für ein Repository hatten, das beim Erstellen des Schlüssels keinen Schreibzugriff hatte, und Sie versuchen, auf dieses Repository zu pushen. Vergessen Sie beim Erstellen eines Schlüssels nicht, das Kontrollkästchen “Schreibzugriff zulassen” zu aktivieren.

1358140cookie-checkGithub authentifiziert sich, lässt aber keinen Code-Push zu

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy