每次提交时都停止 gpg 询问密钥

Stop gpg from asking for the key everytime I commit

基本上我想要的是不必在每次提交 git.

时都输入密码

在寻找解决方案时,我发现 this

所以它告诉我在配置文件中设置 default-cache-ttl 和 max-cache-ttl。但是在我的安装中,该文件似乎不在 C:\users.gnupg 中。 (根据 gpg --version,我是 运行 windows 10,GPG 版本 2.2.23)

我接下来发现 this post 这表明它将在 %appdata%\gnupg 中,该文件不存在。我尝试添加包含以下内容的文件:

default-cache-ttl 2592000
max-cache-ttl 2592000

当我使用以下命令重新启动 gpg 时

gpgconf.exe --reload gpg-agent
gpgconf.exe --list-options gpg-agent

它输出这个:

Monitor:1:0:Options controlling the diagnostic output:0:0::::
verbose:12:0:verbose:0:0::::
quiet:8:0:be somewhat more quiet:0:0::::
Configuration:1:0:Options controlling the configuration:0:0::::
disable-scdaemon:8:1:do not use the SCdaemon:0:0::::
enable-ssh-support:0:0:enable ssh support:0:0::::
ssh-fingerprint-digest:24:2:use ALGO to show ssh fingerprints:1:1:ALGO:"md5::
enable-putty-support:0:0:enable putty support:0:0::::
Debug:1:1:Options useful for debugging:0:0::::
debug-level:26:1:set the debugging level to LEVEL:1:1:LEVEL:"none::
log-file:8:1:write server mode logs to FILE:32:1:FILE:::
Security:1:0:Options controlling the security:0:0::::
default-cache-ttl:24:0:expire cached PINs after N seconds:3:3:N:600::2592000
default-cache-ttl-ssh:24:1:expire SSH keys after N seconds:3:3:N:1800::
max-cache-ttl:24:2:set maximum PIN cache lifetime to N seconds:3:3:N:7200::2592000
max-cache-ttl-ssh:24:2:set maximum SSH key lifetime to N seconds:3:3:N:7200::
ignore-cache-for-signing:8:0:do not use the PIN cache when signing:0:0::::
allow-emacs-pinentry:8:1:allow passphrase to be prompted through Emacs:0:0::::
grab:8:2::0:0::::
no-allow-external-cache:8:0:disallow the use of an external password cache:0:0::::
no-allow-mark-trusted:8:1:disallow clients to mark keys as "trusted":0:0::::
no-allow-loopback-pinentry:8:2:disallow caller to override the pinentry:0:0::::
Passphrase policy:1:1:Options enforcing a passphrase policy:0:0::::
enforce-passphrase-constraints:8:2:do not allow bypassing the passphrase policy:0:0::::
min-passphrase-len:24:1:set minimal required length for new passphrases to N:3:3:N:8::
min-passphrase-nonalpha:24:2:require at least N non-alpha characters for a new passphrase:3:3:N:1::
check-passphrase-pattern:24:2:check new passphrases against pattern in FILE:32:1:FILE:::
max-passphrase-days:24:2:expire the passphrase after N days:3:3:N:0::
enable-passphrase-history:8:2:do not allow the reuse of old passphrases:0:0::::
pinentry-timeout:24:1:set the Pinentry timeout to N seconds:3:3:N:0::

这似乎表明这是有效的,即使它不是。我在这里错过了什么?

我遇到了类似的问题,发现这个答案很有帮助。

原来我安装了两个版本的 gpg。一个使用 Git 安装,另一个手动安装。我正在配置手动配置,但 git 使用的是不同的配置。

The big gotcha, though, is that Git also installs its own version of GnuPG (gpg.exe), and uses it by default. The version that comes with Git uses %USERPROFILE%.gnupg. On modern versions of Windows, this would be C:\Users%USERNAME%.gnupg.

https://superuser.com/questions/1068980/where-is-my-gpgconf-file-on-windows