在 MacOS High Sierra 中为 gpg-agent 全局设置环境变量

在 MacOS High Sierra 中为 gpg-agent 全局设置环境变量

我想在 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 设置的变量被忽略了......

相关内容