Sur MacOSX, j'utilise gnupg21
pour signer git commit
. Selon le projet, je travaille actuellement quelque temps, j'utilise IDE (ici IntellijIDEA
) pour interagir avec git
et parfois directement dans le terminal
.
J'ai dû configurer
pinentry-program /usr/local/bin/pinentry-mac
Pour pouvoir continuer à travailler sur IntellijIDEA
.
Cependant, je ne suis pas vraiment fan sur l'introduction de GUI lorsque j'utilise le terminal
. Pensez-vous qu'il est possible de configurer gnupg21
pour choisir le programme pinentry
concernant la situation?
/usr/local/bin/pinentry-mac
/usr/local/bin/pinentry
Edit: Mes fichiers de configuration actuels
Gpg-agent.conf
enable-ssh-support default-cache-ttl 14400 max-cache-ttl 86400 log-file /var/log/gpg-agent.log pinentry-program /usr/local/bin/pinentry-mac
Gpg.conf
keyserver hkp://keys.gnupg.net no-tty use-agent
gpg-agent
s gpg-agent
de GnuPG pourrait être configuré pour utiliser différentes sockets avant GnuPG 2.1; Vous pourriez avoir utilisé différents gpg-agent
s en parallèle avec différentes configurations (implémentations pinentry).
Avec GnuPG 2.1, cela n'est plus possible. GnuPG depuis 2.1 utilise toujours un chemin d'accès fixe.
La seule possibilité propre d'activer une telle fonctionnalité est probablement l'écriture d'une implantation de «commutateur» de pinentry, en décidant quelle pinceuse réelle appeler en fonction de l'appel d'une ligne de commande ou de l'interface graphique (par exemple, selon les variables DISPLAY
ou tty
définies) .
Une alternative serait d'utiliser la fonction de pincement de bouclage, qui est désactivée dans gpg-agent
par défaut pour des raisons de sécurité. Pinentry loopback aura gpg-agent
query gpg
pour la phrase de passe au lieu de la requête de mot de passe pinentry hors bande. Cela ouvre potentiellement les problèmes de sécurité, car l'application GnuPG assez large et complexe (avec une plus grande chance de vulnérabilités) accède à la phrase secrète et donc à la clé privée, qui serait autrement limitée à la mise en œuvre gpg-agent
et pinentry.
Pour le faire de toute façon, ajoutez une ligne allow-loopback-pinentry
dans ~/.gnupg/gpg-agent.conf
, killall gpg-agent
(de sorte qu'il soit redémarré avec l'option activée la prochaine fois que GnuPG veut l'utiliser). Lorsque vous souhaitez utiliser la pinentry GUI, démarrez GnuPG comme d'habitude; Pour les opérations de ligne de commande, appelez gpg21 --pinentry-mode loopback
place (ce qui bien sûr pourrait être un alias pour gpg21
).