Я хочу использовать gpg-agent
вместо ssh-agent
в MacOS High Sierra.
Для этого мне нужно установить глобально две переменные окружения:
GPG_TTY=$(tty)
SSH_AUTH_SOCK=${HOME}/.gnupg/S.gpg-agent.ssh
Это необходимо для хранения парольных фраз для ключей проверки подлинности gpg и для моих ключей ssh.
Мне нужен такой тип установки, чтобы использовать KeePassXC с его функцией интеграции ssh-agent, поэтому все случайные парольные фразы для моих ключей ssh хранятся там и будут добавлены в gpg-agent (вместо ssh-agent), когда база данных KeePassXC будет разблокирован. С другой стороны, парольные фразы для моих ключей аутентификации gpg будут храниться в gpg-agent.
Кто-нибудь знает, как я могу глобально настроить env vars? Если я установлю их для всего пользователя в моем ~/.zshrc
, то KeepassXC по-прежнему запускает ssh-agent параллельно с gpg-agent и добавляет их в системный ssh-agent вместо gpg-agent.
Конечная цель - полностью отключить ssh-agent, убедившись, что KeePassXC не запустит его, а вместо этого будет использовать gpg-agent.
Я попытался установить переменные env с помощью 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 игнорируется ...