我想在 MacOS High Sierra 中使用gpg-agent
而不是ssh-agent
。为此,我需要全局设置两个环境变量:
GPG_TTY=$(tty)
SSH_AUTH_SOCK=${HOME}/.gnupg/S.gpg-agent.ssh
这是为了存储 gpg 身份验证密钥和我的 ssh 密钥的密码所必需的。
我想要这种设置,以便使用 KeePassXC 及其 ssh-agent 集成功能,这样我的 ssh 密钥的所有随机密码都存储在那里,并在 KeePassXC 数据库解锁时添加到 gpg-agent(而不是 ssh-agent)。另一方面,我的 gpg 身份验证密钥的密码将本地存储在 gpg-agent 中。
有人知道如何全局设置环境变量吗?如果我在我的 中为用户范围设置它们~/.zshrc
,那么 KeepassXC 仍会与 gpg-agent 并行启动 ssh-agent,并将它们添加到系统的 ssh-agent 而不是 gpg-agent。
最终目标是完全禁用 ssh-agent,确保 KeePassXC 不会启动它,而是使用 gpg-agent。
我尝试使用以下命令设置环境变量launchctl setenv
:
$ launchctl setenv SSH_AUTH_SOCK ${HOME}/.gnupg/S.gpg-agent.ssh
$ launchctl getenv SSH_AUTH_SOCK
/Users/drew/.gnupg/S.gpg-agent.ssh
看起来不错,但是:
$ echo $SSH_AUTH_SOCK
/private/tmp/com.apple.launchd.IjNASGcnxM/Listeners
因此看起来 launchd 设置的变量被忽略了......