Zum Inhalt springen
ecdsa.com
GnuPG (gpg --verify, git verify-commit / verify-tag / log --show-signature)Git

Fehlermeldung

gpg: Can't check signature: No public key

Auch ausgegeben als

  • gpg: Can't check signature: no public key

GnuPG 2.4 schreibt „No public key“; Übersetzungen und ältere Builds können in der Groß- und Kleinschreibung abweichen. Die Prüfbefehle von Git enden mit einem Exit-Code ungleich null und reichen die Ausgabe von gpg durch.

Was der Fehler bedeutet

Das Objekt ist signiert, und gpg hat die Signatur gefunden, aber der Schlüsselbund enthält keinen öffentlichen Schlüssel, der zum Fingerabdruck des Ausstellers passt, deshalb kann gpg nicht sagen, ob die Signatur gut oder schlecht ist. Die vorangehenden Zeilen („Signature made …“, „using … key <fingerprint>“) zeigen dir, welchen Schlüssel du brauchst. Das ist keine fehlgeschlagene Signatur – es fehlt ein Schlüssel.

Warum der Fehler auftritt

So behebst du den Fehler

  1. 1.

    Schlüssel aus einer vertrauenswürdigen Quelle importieren

    Importiere ihn von der Website des Projekts, aus den Release Notes oder von einem Keyserver, und prüfe den Fingerabdruck über einen separaten Kanal, bevor du Signaturen vertraust.

    bash
    # Import the signer's key from a trusted source, then compare the fingerprint out of band
    curl -sSL https://example.com/release-signing-key.asc | gpg --import
    gpg --fingerprint release@example.com
    git verify-commit HEAD
  2. 2.

    Von einer Plattform veröffentlichte Schlüssel verwenden

    GitHub stellt die für jedes Konto registrierten GPG-Schlüssel unter `https://github.com/<user>.gpg` bereit.

    bash
    # Keys a GitHub user registered for signing (verify the fingerprint before trusting it)
    curl -sSL https://github.com/<user>.gpg | gpg --import

Verwandte Fehler

Gesamte Signaturfehler-Datenbank durchsuchen