gpg-agent 忽略缓存配置 macOS sierra

gpg-agent 忽略缓存配置 macOS sierra

我通过 homebrew 安装了 gpg。

我有一个 ~/gpg-agent.conf 文件,内容如下:

allow-preset-passphrase
default-cache-ttl 1209600
max-cache-ttl 1209600
max-cache-ttl-ssh 1209600

我的 .bashrc (实际上~/.bash_it/custom/gpg-agent.bash) 有

export GPG_TTY=$(tty)

[ -f ~/.gpg-agent-info ] && source ~/.gpg-agent-info
if [ -S "${GPG_AGENT_INFO%%:*}" ]; then
  export GPG_AGENT_INFO
else
  eval $( /usr/local/bin/gpg-agent --daemon --write-env-file ~/.gpg-agent-info )
fi

我的假设是,这样每 2 周只需要输入一次密码,但每 5 分钟仍然需要输入一次密码。gpg-agent --gpgconf-list显示实际正在使用的值吗?

$ gpg-agent --gpgconf-list
gpgconf-gpg-agent.conf:16:"/Users/notbrain/.gnupg/gpg-agent.conf
verbose:8:
quiet:8:
debug-level:24:"none:
log-file:8:
default-cache-ttl:24:600:
default-cache-ttl-ssh:24:1800:
max-cache-ttl:24:7200:
max-cache-ttl-ssh:24:7200:
enforce-passphrase-constraints:8:
min-passphrase-len:24:8:
min-passphrase-nonalpha:24:1:
check-passphrase-pattern:24:
max-passphrase-days:24:0:
enable-passphrase-history:8:
no-grab:8:
ignore-cache-for-signing:8:
no-allow-mark-trusted:8:
no-allow-external-cache:8:
disable-scdaemon:8:
enable-ssh-support:0:

为什么我的 gpg-agent.conf 文件没有被遵守?我遗漏了什么?通过 homebrew 安装:

$ ll $(which gpg)
8 lrwxr-xr-x  1 notbrain  admin    33B Mar  1 15:15 /usr/local/bin/gpg -> ../Cellar/gnupg2/2.0.30_3/bin/gpg

答案1

您已将gpg-agent.conf文件放在主目录中~/.gpg-agent.conf。但该文件的默认位置在子目录中:~/.gpg/gpg-agent.conf

在里面gpg-agent配置文档他们说gpg-agent.conf文件应该位于“当前主目录”。但令人困惑的是,他们指的不是用户的主目录;他们指的是gpg-agent 的主目录~/.gpg

因此,您可以将配置文件移动到,~/.gpg/gpg-agent.conf它应该会被找到。或者,您可以在启动时gpg-agent使用标志指定一个新的主目录--homedir [dir]

答案2

事实证明,这只是 iterm2 简单的注销/登录和/或重新启动无法正常工作的问题。我重新启动后它就开始工作了。

答案3

使用 MacOS Monterery,面临同样的问题,一个小时后发现密码被 macos 钥匙串缓存,要禁用它,请转到系统偏好设置 > GPG Suite取消选中-存储在 macOS 钥匙串中选项。保存的密码仍会尝试一次,因此最好将其删除(删除按钮位于上述选项的右侧)。还可以使用 GPG Suite 配置缓存时间Remember for _ option

相关内容