我通过 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
。