La firma de Git GPG falla sin un mensaje claro

3 minutos de lectura

Avatar de usuario de Boris
boris

Si configuro mi Git para que firme con mi clave GPG, falla. Probé GIT_TRACE y realmente no me da más información:

$ GIT_TRACE=1 git commit
15:29:35.112157 git.c:344               trace: built-in: git 'commit'
15:29:35.115745 run-command.c:626       trace: run_command: 'code --wait' '/Users/b/VurbAgency/haarlem.github.io/.git/COMMIT_EDITMSG'
15:29:52.884006 run-command.c:626       trace: run_command: 'gpg' '--status-fd=2' '-bsau' 'SECRETKEYID'
error: gpg failed to sign the data
fatal: failed to write commit object

Cuando trato de correr 'gpg' '--status-fd=2' '-bsau' 'SECRETKEYID' simplemente se cuelga después de decir BEGIN_SIGNING H8 y ya no hace nada.

¿Alguna idea sobre cómo resolver esto o vías de investigación?

Me topé con esto cuando encontré el mismo error y ya estaba en la última versión de gpg (2.2.17). Para mí, resultó ser varias cosas.

  1. Antes de comprometerme tuve que correr $ export GPG_TTY=$(tty). Esto hizo que apareciera el mensaje de la frase de contraseña.
  2. Si usaba una frase de contraseña con un carácter especial, no funcionaba (el aviso decía que tenía una frase de contraseña incorrecta cuando intentaba usarla), así que solo tenía que usar caracteres alfanuméricos.

Y si está haciendo esto para obtener confirmaciones verificadas en GitHub, asegúrese de que el nombre y la dirección de correo electrónico coincidan con los que tiene en GitHub.

  • No me pasa nada cuando corro export GPG_TTY=$(tty)

    – ReincorporarMonica3167040

    21 de diciembre de 2019 a las 0:13

  • Lo mismo aquí para mí, el comando no hace nada. ¿Alguna vez encontraste una solución a esto?@ReinstateMonica3167040

    – Joey Mousepad

    3 de mayo a las 16:43

  • tambien tenia que agregar gpg-connect-agent updatestartuptty /bye >/dev/null junto con export GPG_TTY=$(tty) para mi .bashrc. Esto hizo que se solicitara la contraseña de GPG (gpg --status-fd=2 -bsau <id>) aparecen correctamente. Encontré la solución en Arch Wiki: wiki.archlinux.org/title/…

    – Andreas Nasmann

    16 de septiembre a las 5:58


  • GRACIAS, esto funcionó para mí. La próxima vez que intenté comprometerme, ingresé mi frase de contraseña y maricón no más no puedo firmar error de datos

    – Jacob G.

    24 oct a las 15:37

Si ha instalado gpg usando Homebrew y también está usando GPGTools, necesita desinstalar gpg de Homebrew.

# Uninstall gpg in homebrew so that it uses the gpg in GPGTools instead
$ brew uninstall gpg

# You might need to do some extra cleanup afterward as well:
$ rm -r /opt/homebrew/etc/gnupg

# Restart the gpg-agent so that it uses the correct one:
$ gpgconf --kill gpg-agent

Después de eso, git pudo volver a firmar mis confirmaciones.

  • ¡Esto fue todo para mí! Después de reiniciar la computadora, mi computadora decidió usar gpg de Homebrew.

    – nshoes

    26 sep a las 15:44

Me encontré con el mismo problema. En el archivo de configuración de GnuPG ~/.gnupg/gpg-agent.confla pinentry-program camino apuntaba a pinentry-macque faltaba.

Correr brew install pinentry-mac arreglado.

He actualizado GPG en mi mac usando brew upgrade gpg después vi que mi GPG estaba en la versión 2.2.5 y la más nueva era la 2.2.10.

Esto ha solucionado el problema, por ahora. Sin embargo, todavía no tengo idea de cuál fue la causa de este problema.

¿Ha sido útil esta solución?