
gpg-agent
MacOS 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 で設定された変数は無視されるようです...