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