gpg-agent 忽略缓存配置 macOS Sierra

not*_*ain 5 encryption bash gnupg gpg-agent

我通过自制程序安装了 gpg。

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

allow-preset-passphrase
default-cache-ttl 1209600
max-cache-ttl 1209600
max-cache-ttl-ssh 1209600
Run Code Online (Sandbox Code Playgroud)

我的 .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
Run Code Online (Sandbox Code Playgroud)

我的假设是这样可以使我每 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:
Run Code Online (Sandbox Code Playgroud)

为什么我的 gpg-agent.conf 文件没有被遵守?我缺少什么?通过自制软件安装:

$ 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
Run Code Online (Sandbox Code Playgroud)

小智 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]

  • 我认为您误读了输出 - 它位于我的主目录中的 .gnupg/gpg-agent.conf 中。我应该回答这个问题,gpg-agent 需要重新启动才能获取我设置的配置。简单地重新启动 iterm2 并没有解决问题。 (2认同)