Skip to main content

Verwalten privater Schlüssel für GitHub-Apps

Du kannst private Schlüssel für die Authentifizierung mit deiner GitHub App verwalten.

Informationen zu privaten Schlüsseln für GitHub Apps

Nachdem du eine GitHub App erstellt hast, musst du einen privaten Schlüssel generieren, um Anforderungen an die GitHub-API als Anwendung selbst zu senden. Beispielsweise benötigst du einen privaten Schlüssel, um ein JSON-Webtoken (JWT) zu signieren, um ein Installationszugriffstoken anzufordern. Weitere Informationen findest du unter Generieren eines JSON Web Token (JWT) für eine GitHub-App.

Du kannst mehrere private Schlüssel erstellen und diese rotieren, um Ausfallzeiten zu verhindern, wenn ein Schlüssel kompromittiert wird oder verloren geht. Informationen zum Überprüfen, ob ein privater Schlüssel mit einem öffentlichen Schlüssel übereinstimmt, findest du unter Überprüfen privater Schlüssel.

Private Schlüssel laufen nicht ab und müssen stattdessen manuell widerrufen werden. Weitere Informationen zum Widerrufen eines privaten Schlüssels finden Sie unter „Löschen privater Schlüssel“.

Du musst private Schlüssel für GitHub Apps sicher aufbewahren. Weitere Informationen findest du unter Speichern privater Schlüssel.

Generieren privater Schlüssel

So generierst du einen privaten Schlüssel

  1. Klicke auf GitHub in der oberen rechten Ecke einer beliebigen Seite auf dein Profilfoto.
  2. Navigieren Sie zu den Einstellungen für Ihr Konto.
    • Klicken Sie bei einer App, die zu einem persönlichen Konto gehört, auf Einstellungen.
    • Für eine App im Besitz einer Organisation:
      1. Klicke Sie auf Ihre Organisationen.
      2. Klicken Sie rechts neben der Organisation auf Einstellungen.
  3. Klicke auf der linken Seitenleiste auf Entwicklereinstellungen.
  4. Klicke auf der linken Randleiste auf GitHub Apps .
  5. Klicke neben der GitHub App, für die du einen privaten Schlüssel generieren möchtest, auf Bearbeiten.
  6. Klicke unter „Private Schlüssel“ auf Privaten Schlüssel generieren.
  7. Es wird ein privater Schlüssel im PEM-Format auf deinen Computer heruntergeladen. Du muss diese Datei unbedingt speichern, da GitHub nur den öffentlichen Teil des Schlüssels speichert. Weitere Informationen zum sicheren Speichern deines Schlüssels findest du unter Speichern privater Schlüssel.

Hinweis: Wenn du eine Bibliothek verwendest, die ein bestimmtes Dateiformat erfordert, weist die heruntergeladene PEM-Datei das Format PKCS#1 RSAPrivateKey auf.

Überprüfen privater Schlüssel

GitHub generiert mit der SHA-256-Hashfunktion einen Fingerabdruck für jedes Paar aus privatem und öffentlichem Schlüssel. Du kannst überprüfen, ob dein privater Schlüssel dem öffentlichen Schlüssel entspricht, der auf GitHub gespeichert ist, indem du den Fingerabdruck deines privaten Schlüssels generierst und mit dem Fingerabdruck vergleichst, der auf GitHub angezeigt wird.

So überprüfst du einen privaten Schlüssel

  1. Den Fingerabdruck für das Schlüsselpaar aus privatem und öffentlichem Schlüssel, das du überprüfen möchtest, findest du auf der Seite mit den Einstellungen für deine GitHub App im Abschnitt „Private Schlüssel“ findest. Weitere Informationen findest du unter Generieren eines privaten Schlüssels.

    Screenshot eines privaten Schlüssels auf einer GitHub App-Einstellungsseite. Der Fingerabdruck, der Teil des privaten Schlüssels nach dem Doppelpunkt, ist dunkelorange umrissen.

  2. Generiere den Fingerabdruck deines privaten Schlüssels (PEM) lokal mithilfe des folgenden Befehls:

    openssl rsa -in PATH_TO_PEM_FILE -pubout -outform DER | openssl sha256 -binary | openssl base64
    
  3. Vergleiche die Ergebnisse des lokal generierten Fingerabdrucks mit dem Fingerabdruck, der in GitHub angezeigt wird.

Löschen privater Schlüssel

Du kannst einen verlorenen oder kompromittierten privaten Schlüssel entfernen, indem du ihn löschst. Du musst jedoch einen neuen Schlüssel generieren, bevor du den vorhandenen Schlüssel löschen kannst.

  1. Klicke auf GitHub in der oberen rechten Ecke einer beliebigen Seite auf dein Profilfoto.
  2. Navigieren Sie zu den Einstellungen für Ihr Konto.
    • Klicken Sie bei einer App, die zu einem persönlichen Konto gehört, auf Einstellungen.
    • Für eine App im Besitz einer Organisation:
      1. Klicke Sie auf Ihre Organisationen.
      2. Klicken Sie rechts neben der Organisation auf Einstellungen.
  3. Klicke auf der linken Seitenleiste auf Entwicklereinstellungen.
  4. Klicke auf der linken Randleiste auf GitHub Apps .
  5. Klicke neben der GitHub App, für die du einen privaten Schlüssel löschen möchtest, auf Bearbeiten.
  6. Klicke unter „Private Schlüssel“ rechts neben dem privaten Schlüssel, den du löschen möchtest, auf Löschen.
  7. Wenn du dazu aufgefordert wirst, bestätige, dass du den privaten Schlüssel löschen möchtest, indem du auf Löschen klickst. Wenn deine GitHub App nur über einen einzigen Schlüssel verfügt, musst du einen neuen Schlüssel generieren, bevor du den alten Schlüssel löschst. Weitere Informationen findest du unter Generieren privater Schlüssel.

Speichern privater Schlüssel

Der private Schlüssel ist das wertvollste Geheimnis für eine GitHub App. Du solltest erwägen, den Schlüssel in einem Schlüsseltresor wie Azure Key Vault zu speichern und nur zum Signieren zu verwenden. So lässt sich sicherstellen, dass der private Schlüssel nicht verlorengehen kann. Sobald der private Schlüssel in den Schlüsseltresor hochgeladen ist, kann er dort nie gelesen werden. Er kann nur zum Signieren von Elementen verwendet werden, und der Zugriff auf den privaten Schlüssel wird durch deine Infrastrukturregeln bestimmt.

Alternativ kannst du den Schlüssel als Umgebungsvariable speichern. Dabei ist er nicht so stark geschützt wie beim Speichern in einem Schlüsseltresor. Wenn ein Angreifer Zugriff auf die Umgebung erhält, kann er den privaten Schlüssel lesen und die dauerhafte Authentifizierung als GitHub App erlangen.

Du solltest deinen privaten Schlüssel in deiner App auch dann nicht hart codieren, wenn dein Code in einem privaten Repository gespeichert ist.

Weitere Informationen findest du unter Best Practices beim Erstellen einer GitHub-App.