J'aime signer mes commits git avec ma clé PGP, donc j'étais assez alarmé quand je suis allé git commit -S
mais au lieu de demander ma phrase secrète de clé PGP, git a juste commencé à se bloquer. Je n'ai pas modifié ma configuration GPG depuis plusieurs mois et j'ai effectué de nombreuses validations depuis lors sans problème. De plus, lorsque j'essaie d'afficher mes clés privées avec gpg -K
, gpg se bloque. Cependant, lorsque je cours gpg -k
pour afficher mes clés publiques, il renvoie la liste comme d'habitude. J'espère que quelqu'un aura une idée de ce qui cause ce problème et comment le résoudre.
16
gpg-agent
une configuration similaire dans le .bashrc (etc.) du système distant et configurée pour demander l'affichage X de la télécommande ou similaire? j'ai eu des problèmes similaires dans le passé (par exemple, ssh-ing à partir d'un terminal sur ma boîte mythtv vers ma machine de bureau pour exécuter quelque chose nécessitant gpg. a également eu des problèmes similaires avecssh-agent
), et je l'ai "corrigé" par force bruteexport GPG_TTY=$(tty)
dans le .bashrc, pour vous assurer que l'invite est toujours sur le terminal actuel. je ne peux pas supporter les invites de mot de passe GUI de toute façon.gpg-agent
page de manuel que définir GPG_TTY comme ci-dessus n'est pas quelque chose que j'ai piraté pour travailler, c'est obligatoire. La page de manuel indique que vous devez toujours le placer dans votre .bashrc comme je l'ai fait, et dit égalementIt is important that this environment variable always reflects the output of the tty command.
- c'est sans doute de là que je l'ai obtenu. Une autre chose à laquelle vous devez faire attention est le programme Pinentry utilisé par gpg-agent. J'ai le mien réglé~/.gnupg/gpg-agent.conf
pour/usr/bin/pinentry-curses
Réponses:
Je suis tombé sur ce problème exact (OSX Sierra 10.12.6, gpg / GnuPG 2.2.5)
Commandes qui se bloqueraient:
Ma solution était la même que celle mentionnée par John ci-dessus (c.-à-d. Tuer gpg-agent) car la plupart des autres méthodes sur la façon dont-peut-redémarrer-gpg-agent se bloqueraient également.
Ensuite, pour la signature des commits git, j'ai défini le tty env comme mentionné par cas ci-dessus et également sur gpg-failed-to-sign-commit-object .
la source
gpg-agent
semble être la seule façon de le faire fonctionner à nouveau.