Mensaje de error
gpg: BAD signature from "Release Bot <release@example.com>" [ultimate]
También se muestra como
- gpg: BAD signature from "Release Bot <release@example.com>" [unknown]
El ID de usuario entre comillas y el nivel de confianza entre corchetes (`[ultimate]`, `[full]`, `[unknown]`) proceden de tu anillo de claves.
Qué significa
gpg tiene la clave pública del firmante, comprueba la firma y la comprobación falla: los datos no son lo que firmó el titular de la clave. A diferencia de «No public key», este es un resultado negativo definitivo: el archivo o el objeto se modificó después de la firma, o la firma corresponde a otros datos. Trata el contenido como no fiable. La palabra entre corchetes es tu nivel de confianza en la clave, no forma parte del veredicto.
Por qué ocurre
Datos modificados después de la firma
frecuenteUna descarga manipulada, un archivo de sumas de comprobación editado o un objeto commit reescrito sin volver a firmarlo. Precisamente para revelar esto existe la firma.
Conversión de finales de línea o de codificación
frecuente`autocrlf` de Git, FTP en modo ASCII o un editor que añade un salto de línea final cambian los bytes de los archivos de texto, y una firma separada calculada sobre los bytes originales deja de coincidir.
La firma y el archivo no corresponden entre sí
ocasionalUn `.asc` de una versión verificado contra el archivo de otra, o una firma del tarball comprobada contra el archivo de sumas de comprobación.
Cómo solucionarlo
- 1.
Volver a obtener ambos archivos y verificar de nuevo
Si el resultado sigue siendo BAD con archivos obtenidos por un canal fiable, no uses el contenido y avisa a quien lo publica.
bash # Fetch both files again over a verified channel and compare sha256sum release.tar.sha256 curl -sSLO https://example.com/downloads/release.tar.sha256 curl -sSLO https://example.com/downloads/release.tar.sha256.asc gpg --verify release.tar.sha256.asc release.tar.sha256 - 2.
Proteger de la conversión los archivos de texto firmados
Marca los archivos de firmas y de sumas de comprobación como binarios en `.gitattributes` para que la conversión de finales de línea no los toque nunca.
text # .gitattributes: never convert line endings of signed files *.asc -text *.sig -text SHA256SUMS -text
Errores relacionados
gpg: Can't check signature: No public keyGnuPG (gpg --verify, git verify-commit / verify-tag / log --show-signature)Signature verification failed: incorrect signatureOpenSSH ssh-keygen -Y verify (SSHSIG)invalid signature when validating ASN.1 encoded signatureSigstore cosign (verify-blob / verify with --key)