Saltar al contenido
ecdsa.com
GnuPG (gpg --verify, git verify-commit / verify-tag / log --show-signature)Git

Mensaje de error

gpg: Can't check signature: No public key

También se muestra como

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

GnuPG 2.4 escribe «No public key»; las traducciones y las compilaciones más antiguas pueden diferir en el uso de mayúsculas. Los comandos de verificación de Git terminan con un código distinto de cero y transmiten la salida de gpg.

Qué significa

El objeto está firmado y gpg encuentra la firma, pero el anillo de claves no tiene ninguna clave pública que coincida con la huella digital del emisor, así que no puede decir si la firma es buena o mala. Las líneas anteriores («Signature made …», «using … key <fingerprint>») te dicen qué clave necesitas. No es una firma fallida: es una clave que falta.

Por qué ocurre

Cómo solucionarlo

  1. 1.

    Importar la clave desde una fuente de confianza

    Impórtala desde el sitio web del proyecto, las notas de la versión o un servidor de claves, y verifica la huella digital por un canal independiente antes de confiar en las firmas.

    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.

    Usar las claves que publica una plataforma

    GitHub sirve las claves GPG registradas de cada usuario en `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

Errores relacionados

Explorar toda la base de datos de errores de firma