在 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 設定的變數被忽略了...

相關內容