MacOS High Sierra で gpg-agent の環境変数をグローバルに設定する

MacOS High Sierra で gpg-agent の環境変数をグローバルに設定する

gpg-agentMacOS High Sierra ではの代わりにを使いたいのですssh-agentが、これを実現するには、2 つの環境変数をグローバルに設定する必要があります。

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 にネイティブに保存されます。

env vars をグローバルに設定する方法を誰か知っていますか? ユーザー全体で設定すると~/.zshrc、KeepassXC は gpg-agent と並行して ssh-agent を起動し、gpg-agent ではなくシステムの ssh-agent に追加します。

最終目標は、ssh-agent を完全に無効にして、KeePassXC が ssh-agent を起動せず、代わりに 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 で設定された変数は無視されるようです...

関連情報