如何从 CLI 输入 gnupg-agent 密钥密码?

hol*_*lms 8 gnupg

我确实用 git 签署了提交,这是一个大问题,我无法从 CLI 以外的任何地方输入 gpg 密钥密码。例如,如果我将在 vscode 中提交,它将失败。所以我想出了一个想法,只需从 CLI 输入密码,并将其缓存一段时间。

我在这里使用鱼壳,所以这里有一个配置:

set -x GPG_TTY (tty)
eval (gpg-agent --daemon --allow-preset-passphrase  --default-cache-ttl 43200)
Run Code Online (Sandbox Code Playgroud)

据我了解,我需要启用为代理预设密码。那么接下来呢?

我试图预设一个这样的键,但它失败了:

$ echo mypassphrase | /usr/lib/gnupg2/gpg-preset-passphrase -c E2AB66331DA5CA780B7B1FA5D4BF11DA1E39EDFF

gpg-preset-passphrase: caching passphrase failed: Not supported
Run Code Online (Sandbox Code Playgroud)

我已经用谷歌搜索了所有我能做的,但没有人在任何地方回答这个问题。有类似的东西会很好ssh-add,你只需添加一个私钥,然后输入密码,想知道为什么 gpg-agent 没有采用这种漂亮的设计。

hol*_*lms 8

好像解决了。需要添加一些东西~/.gnupg/gpg-agent.conf

default-cache-ttl 46000
pinentry-program /usr/bin/pinentry-gtk-2
allow-preset-passphrase
Run Code Online (Sandbox Code Playgroud)

重新加载 gpg-agent

gpg-connect-agent reloadagent /bye
Run Code Online (Sandbox Code Playgroud)