
Я хочу использовать 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.
Кто-нибудь знает, как мне глобально настроить переменные окружения? Если я настрою их для всего пользователя в моем ~/.zshrc
, то KeepassXC все равно запустит ssh-agent параллельно с gpg-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, игнорируется...