error: gpg failed to sign the data
Introducción
Nos últimos días cando quero firmar un commit con GPG estou a ter un erro. En concreto no momento de commitear obteño a seguinte saída:
error: gpg failed to sign the data
fatal: failed to write commit object
Co cal se quero firmar as contribucións, non podo.
Así que neste artigo vou recoller que é este erro e como solventalo.
En que consiste este erro
Facendo unha busca por internet aparecen erros polo programa GPG, que parece que apunta a unha versión equivocada. Nalgúns casos a xente pide deter o demo para volver a correlo, etc.
Pero é algo máis simple ca isto. Xa levaba algún tempo sen escribir un artigo e non lembro cando foi que din de alta a miña clave. Así que a miña primeira sospeita foi que a clave caducara. Co seguinte comando podo listar as claves e ver o estado:
gpg --list-keys --keyid-format LONG
No meu caso esta foi a saída ao comando:
pub rsa3072/0000000000000009 2022-07-19 [SC] [expired: 2024-07-18]
1111111111111111111111111111111111111119
uid [ expired] CodigoMorrazo <codigomorrazo@gmail.com>
Polo que a miña primeira intuición era correcta, as claves teñen dous anos de duración. Así que agora teño que estender a miña data de caducidade, ou renovala máis ben.
Correxindo o erro: estender a data de caducidade
O primeiro será editar a clave con
gpg --edit-key 0000000000000009
NOTA: Substitúe 0000000000000009 polo ID da túa clave, mudando o número polo que aparece na saída anterior despois de rsa3072.
Isto abriranos a consola de GPG, nela poderemos ver os datos da nosa clave,
outra vez a data de caducidade e algunha información máis.
Imoslle dicir á clave que está caducada, para o que usaremos o comando
expire o que nos da as seguintes opcións:
gpg> expire
Cambiando a data de expiración da chave primaria.
Por favor, indique canto tempo debería ser válida a chave.
0 = a chave non caduca
<n> = a chave caduca en n días
<n>w = a chave caduca en n semanas
<n>m = a chave caduca en n meses
<n>y = a chave caduca en n anos
¿Por canto tempo é válida a chave? (0)
No meu caso escollín un ano, a continuación pedirá confirmar. Dicímoslle que sí e continuamos.
Unha vez cambiada tamén me saíu o aviso de que a subclave tamén ten problemas.
gpg: WARNING: Your encryption subkey expires soon.
gpg: You may want to change its expiration date too.
Por resumir, ás claves son para firmar commits e as subclaves
para cifrar correos ou arquivos. Por exemplo, así podemos mudar
as subclaves sen afectar á principal.
No meu caso só teño unha subclave, así que na mesma consola de GPG
escribimos key 1 e xa podemos seguir os mesmos pasos que ca principal.
expire e escollemos a nova data.
Agora, levo xa bastante tempo co mesmo contrasinal na clave.
Así que vou aproveitar a mudalo. No mesmo editor GPG escribimos
passwd, pediranos a clave actúal e a nova clave.
Conclusión e pasos finais
Unha vez temos feitos os cambios que queiramos so nos queda actualizar a clave nos sevidores públicos. No caso de que as teñamos alí. O cal é unha boa idea, xa que alguén pode consultar a nosa firma para verificar que somos nós. E cos datos públicos, tamén nos poderían enviar un correo cifrado ca nosa clave pública, conseguindo máis privacidade.
NOTA: para actualizar a clave nos servidores sería con gpg --keyserver dirección.do.server --send-key ID.
Algúns servers que podemos usar son keys.openpgp.org, keyserver.ubuntu.com ou
pgp.mit.edu. Para obter o ID executamos a gpg --fingerprint e da saída collemos
os oito últimos caracteres hexadecimais.
Isto ven demostrar que hai que ter un mantemento das nosas claves, para evitar cousas como a que me aconteceu a mín. Mudar os contrasinais cada certo tempo, etc. Agora xa queda aquí todo recollido, por se volve ocorrer. O certo é que non é algo que aconteza a cotío, así que estará ben ter os pasos aquí recollidos.
Artigos Relacionados:
- Instalar Displaylink openSuse Tumbleweed
- Crear un PNG animado con FFMPEG
- Instalar Fedora con BTRFS, cifrado e Snapshots activos
- AWK
- Mudar as DNS en Fedora
- Distrobox
- Instalar Fedora en VirtualBox
- Eliminar liñas nun ficheiro con sed
- Cómo crear un live USB dende a terminal
- Engadir tarefas a Systemd
- Copiar a saída do terminal ao portapapeis
- Configurar acceso SFTP a un directorio
- Inicio de sesión automático en Alpine linux
- Crear un usuario con permisos restrinxidos para backups
- Xestionar varias claves ssh
- Cómo instalar Traefik con docker
- Configurar sshfs para acceder al sistema de ficheros de forma segura
- Securizar sudo no noso sistema
- Cómo instalar Raspberry OS
- Instalando docker en modo rootless en Debian
- Configuración e uso de GPG en linux
- Firmando commits con Gpg e integración con Codeberg
- Configuración e uso de GPG en linux
- Recuperar ficheiros dun backup con Borgbackup
- Instalar Fedora con BTRFS, cifrado e Snapshots activos
- Ciberseguridad de tú a tú
- Copias de seguridade con Borgbackup
- Crear un usuario con permisos restrinxidos para backups
- Instalación de Pi-hole
- Xerando un proxecto dende 0 con IA
- Crear snippets/fragmentos en Kate
- Introducción a ElasticSearch
- Refactoring: Improving the Design of Existing Code
- Controlar la temperatura del equipo con bash y telegram
- Cómo instalar Traefik con docker
- The Programmer's Brain
- Command Query Responsibility Segregation by Example