Skip to main content

Verwenden von Pushschutz über die Befehlszeile

Erfahren Sie, wie Sie über die Befehlszeile die Blockierung Ihres Pushs an GitHub aufheben können, wenn secret scanning in Ihren Änderungen ein Geheimnis erkennt.

Wer kann dieses Feature verwenden?

Benutzer*innen mit Schreibzugriff

Auflösen eines blockierten Pushvorgangs

Um die Blockierung eines Pushvorgangs zu beheben, müssen Sie das Geheimnis aus allen Commits entfernen, in denen es angezeigt wird.

Entfernen eines Geheimnisses, das durch den letzten Commit in deinem Branch eingeführt wurde

  1. Entferne das Geheimnis aus deinem Code.
  2. Um die Änderungen zu committen, führe git commit --amend --all aus. Dadurch wird der ursprüngliche Commit aktualisiert, der das Geheimnis eingeführt hat, anstatt einen neuen Commit zu erstellen.
  3. Pushe die Änderungen mit git push.

Entfernen eines Geheimnisses, das von einem früheren Commit in deinem Branch eingeführt wurde

  1. Untersuche die Fehlermeldung, die angezeigt wurde, als du versucht hast, deinen Branch zu pushen, und die alle Commits auflistet, die das Geheimnis enthalten.

    remote:   —— GitHub Personal Access Token ——————————————————————
    remote:    locations:
    remote:      - commit: 8728dbe67
    remote:        path: README.md:4
    remote:      - commit: 03d69e5d3
    remote:        path: README.md:4
    remote:      - commit: 8053f7b27
    remote:        path: README.md:4
    
  2. Führe als nächstes git log aus, um einen vollständigen Verlauf aller Commits in deinem Branch mit den entsprechenden Zeitstempeln anzuzeigen.

    test-repo (test-branch)]$ git log
    commit 8053f7b27 (HEAD -> main)
    Author: Octocat <1000+octocat@users.noreply.github.com
    Date:   Tue Jan 30 13:03:37 2024 +0100
    
      my fourth commit message
    
    commit 03d69e5d3
    Author: Octocat <1000+octocat@users.noreply.github.com>
    Date:   Tue Jan 30 13:02:59 2024 +0100
    
      my third commit message
    
    commit 8728dbe67
    Author: Octocat <1000+octocat@users.noreply.github.com
    Date:   Tue Jan 30 13:01:36 2024 +0100
    
      my second commit message
    
    commit 6057cbe51
    Author: Octocat <1000+octocat@users.noreply.github.com
    Date:   Tue Jan 30 12:58:24 2024 +0100
    
      my first commit message
    
    
  3. Focusing only on the commits that contain the secret, use the output of git log to identify which commit comes earliest in your Git history.

    • In the example, commit 8728dbe67 was the first commit to contain the secret.
  4. Start an interactive rebase with git rebase -i <COMMIT-ID>~1.

    • For <COMMIT-ID>, use the commit identified in step 3. For example, git rebase -i 8728dbe67~1.
  5. In the editor, choose to edit the commit identified in step 3 by changing pick to edit on the first line of the text.

    edit 8728dbe67 my second commit message
    pick 03d69e5d3 my third commit message
    pick 8053f7b27 my fourth commit message
    
  6. Speichere den Vorgang und schließe den Editor, um den interaktiven Rebase-Vorgang zu starten.

  7. Entferne das Geheimnis aus deinem Code.

  8. Fügen Sie Ihre Änderungen mittels git add . zum Stagingbereich hinzu.

    Hinweis

    Der vollständige Befehl lautet git add .:

    • Es gibt ein Leerzeichen zwischen add und ..
    • Der Punkt nach dem Leerzeichen ist Teil des Befehls.
  9. Committe deine Änderungen mithilfe von git commit --amend.

  10. Führe git rebase --continue aus, um das Rebasing fertigzustellen.

  11. Pushe die Änderungen mit git push.

Umgehen des Pushschutzes

Hinweis

Wenn die Option zum Umgehen eines Blocks nicht angezeigt wird, sollten Sie den geheimen Schlüssel aus dem Commit entfernen oder eine Anforderung für "Umgehungsberechtigungen" übermitteln, um den blockierten geheimen Schlüssel zu übertragen. Siehe Anfordern von Umgehungsberechtigungen.

  1. Rufe die URL, die von GitHub zurückgegeben wurde, als dein Push blockiert wurde, als dieselbe benutzende Person auf, die den Push durchgeführt hat. Wenn eine andere Peson versucht, diese URL aufzurufen, wird ein 404-Fehler zurückgegeben.

  2. Wähle die Option aus, die am besten beschreibt, warum du in der Lage sein solltest, den geheimen Schlüssel zu pushen.

    • Wenn das Geheimnis nur in Tests verwendet wird und keine Bedrohung darstellt, klicke auf It's used in tests (Wird in Tests verwendet).

    • Wenn die erkannte Zeichenfolge kein Geheimnis ist, klicke auf It's a false positive (Es handelt sich um einen False Positive).

    • Wenn das Geheimnis echt ist, du es jedoch später beheben möchtest, klicke auf I'll fix it later (Problem wird später behoben).

    Hinweis

    Du musst einen Grund für die Umgehung des Pushschutzes angeben, wenn das Repository die Geheimnisüberprüfung aktiviert hat.

    Beim Pushen in ein öffentliches Repository, für das die Geheimnisüberprüfung nicht aktiviert ist, sind Sie dank Pushschutz für Benutzer, der standardmäßig für Ihr Benutzerkonto aktiviert ist, weiterhin vor versehentlichem Pushen von Geheimnissen geschützt.

    Mit dem Pushschutz für Benutzer blockiert GitHub automatisch Pushvorgänge in öffentliche Repositorys, wenn diese Pushvorgänge unterstützte Geheimnisse enthalten, aber Sie müssen keinen Grund für die Zulassung des Geheimnisses angeben, und GitHub generiert keine Warnung. Weitere Informationen finden Sie unter Pushschutz für Benutzer.

  3. Klicke auf Allow me to push this secret (Pushen dieses Geheimnisses zulassen).

  4. Wiederhole den Push innerhalb von drei Stunden über die Befehlszeile. Wenn du innerhalb von drei Stunden keinen Push durchgeführt hast, musst du diesen Vorgang wiederholen.

Anfordern von Umgehungsberechtigungen

  1. Rufe die URL, die von GitHub zurückgegeben wurde, als dein Push blockiert wurde, als dieselbe benutzende Person auf, die den Push durchgeführt hat. Wenn eine andere Peson versucht, diese URL aufzurufen, wird ein 404-Fehler zurückgegeben.

  2. Fügen Sie unter „Oder Überbrückungsberechtigungen anfordern“ einen Kommentar hinzu. Sie können z. B. erklären, warum Sie glauben, dass die Weitergabe des Geheimnisses sicher ist, oder den Kontext der Anforderung zur Überbrückung der Sperre erläutern.

  3. Klicken Sie auf Anforderung übermitteln.

  4. Prüfen Sie Ihre E-Mail-Benachrichtigungen auf eine Antwort auf Ihre Anforderung. Nachdem Ihre Anforderung überprüft wurde, erhalten Sie eine E-Mail, die Sie über die Entscheidung informiert.

    • Wenn Ihre Anforderung genehmigt wurde, können Sie den Commit (oder Commit) mit dem Geheimschlüssel an das Repository übertragen sowie zukünftige Commits, die denselben geheimen Schlüssel enthalten.
    • Wenn Ihre Anforderung verweigert wird, müssen Sie den geheimen Schlüssel aus allen Commits entfernen, bevor Sie erneut pushen. Weitere Informationen zur Entfernung eines blockierten Geheimnisses findest du unter Auflösen eines blockierten Pushvorgangs.

Weiterführende Lektüre

  •         [AUTOTITLE](/code-security/secret-scanning/working-with-secret-scanning-and-push-protection/working-with-push-protection-in-the-github-ui)
    
  •         [AUTOTITLE](/code-security/secret-scanning/working-with-secret-scanning-and-push-protection/working-with-push-protection-from-the-rest-api)