2

Я хочу использовать 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 игнорируется ...

0