Aller au contenu
ecdsa.com
GnuPG (gpg --verify, git verify-commit / verify-tag / log --show-signature)Git

Message d’erreur

gpg: Can't check signature: No public key

Également affiché sous la forme

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

GnuPG 2.4 écrit « No public key » ; les traductions et les builds plus anciens peuvent différer par la casse. Les commandes de vérification de Git se terminent avec un code non nul et retransmettent la sortie de gpg.

Ce que cela signifie

L’objet est signé et gpg a trouvé la signature, mais le trousseau ne contient aucune clé publique correspondant à l’empreinte de l’émetteur : gpg ne peut donc pas dire si la signature est bonne ou mauvaise. Les lignes précédentes (« Signature made … », « using … key <fingerprint> ») indiquent la clé dont vous avez besoin. Il ne s’agit pas d’un échec de la signature, mais d’une clé manquante.

Pourquoi cela se produit

Comment corriger l’erreur

  1. 1.

    Importer la clé depuis une source de confiance

    Importez-la depuis le site web du projet, ses notes de version ou un serveur de clés, et vérifiez l’empreinte par un canal distinct avant de faire confiance aux signatures.

    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.

    Utiliser les clés publiées par une plateforme

    GitHub sert les clés GPG enregistrées par chaque utilisateur à l’adresse `https://github.com/<user>.gpg`.

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

Erreurs associées

Parcourir toute la base de données des erreurs de signature