在 MacOSX 上,我正在使用gnupg21
以签署git commit
. 根据项目目前我正在某个时候我使用IDE(这里IntellijIDEA
)进行交互git
和某个直接terminal
。
我必须设置
pinentry-program /usr/local/bin/pinentry-mac
Run Code Online (Sandbox Code Playgroud)
能够继续工作IntellijIDEA
。
但是,当我使用terminal
. 您认为可以根据情况配置gnupg21
选择pinentry
程序吗?
/usr/local/bin/pinentry-mac
/usr/local/bin/pinentry
编辑:我当前的配置文件
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
Run Code Online (Sandbox Code Playgroud)
配置文件
keyserver hkp://keys.gnupg.net
no-tty
use-agent
Run Code Online (Sandbox Code Playgroud)
小智 6
抱歉回答晚了,但我有同样的问题,并找到了一个比pinentry-program
每次更改配置和重新启动 gpg-agent 更简洁的解决方案。
尽管在源之外的任何地方都没有记录,但pinentry-mac
如果PINENTRY_USER_DATA
环境变量设置为USE_CURSES=1
. 您可以将 pinentry-mac 保留为 gpg-agent.conf 中的默认值并拍打:
export PINENTRY_USER_DATA="USE_CURSES=1"
Run Code Online (Sandbox Code Playgroud)
在您的 bash 配置文件或等效文件中。
gpg-agent
多个在 GnuPG 2.1 之前, GnuPGgpg-agent
可以配置为使用不同的套接字;您可以使用gpg-agent
不同的配置(pinentry 实现)并行运行不同的 s。
对于 GnuPG 2.1,这不再可能了。自 2.1 起,GnuPG 始终使用固定的套接字路径。
启用此类功能的唯一干净的可能性可能是编写 pinentry“开关”实现,根据是从命令行还是从 GUI 调用(例如,取决于设置的内容DISPLAY
或变量)来决定调用哪个实际的 pinentry。tty
另一种方法是使用环回 pinentry 功能,出于gpg-agent
安全原因,默认情况下禁用该功能。Pinentry 环回将查询gpg-agent
密码gpg
短语,而不是带外 pinentry 密码查询。这可能会带来安全问题,因为相当大且复杂的 GnuPG 应用程序(存在漏洞的可能性更大)可以访问密码短语,从而访问私钥,否则私钥将仅限于 和gpg-agent
pinentry 实现。
无论如何,要这样做,请allow-loopback-pinentry
在~/.gnupg/gpg-agent.conf
,中添加一行killall gpg-agent
(这样下次 GnuPG 想要使用它时就会重新启动并启用该选项)。当你想使用GUI pinentry时,像平常一样启动GnuPG;对于命令行操作,请gpg21 --pinentry-mode loopback
改为调用(当然可以是 的别名gpg21
)。
归档时间: |
|
查看次数: |
3131 次 |
最近记录: |