Pular para o conteúdo
ecdsa.com
GnuPG (gpg --verify, git verify-commit / verify-tag / log --show-signature)Git

Mensagem de erro

gpg: Can't check signature: No public key

Também aparece como

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

O GnuPG 2.4 escreve “No public key”; traduções e builds mais antigos podem usar outras maiúsculas e minúsculas. Os comandos de verificação do Git terminam com código diferente de zero e repassam a saída do gpg.

O que significa

O objeto está assinado e o gpg encontrou a assinatura, mas o chaveiro não tem nenhuma chave pública correspondente à impressão digital do emissor, então ele não consegue dizer se a assinatura é boa ou ruim. As linhas anteriores (“Signature made …”, “using … key <fingerprint>”) dizem de qual chave você precisa. Não é uma assinatura que falhou — é uma chave que falta.

Por que acontece

Como corrigir

  1. 1.

    Importar a chave de uma fonte confiável

    Importe do site do projeto, das notas de versão ou de um servidor de chaves e confira a impressão digital por um canal separado antes de confiar nas assinaturas.

    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 as chaves que uma plataforma publica

    O GitHub disponibiliza as chaves GPG registradas de cada usuário em `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

Erros relacionados

Ver toda a base de erros de assinatura