Defina globalmente variáveis ​​de ambiente para gpg-agent no MacOS High Sierra

Defina globalmente variáveis ​​de ambiente para gpg-agent no MacOS High Sierra

Quero usar gpg-agentem vez ssh-agentdo MacOS High Sierra. Para conseguir isso, preciso definir globalmente duas variáveis ​​de ambiente:

GPG_TTY=$(tty)
SSH_AUTH_SOCK=${HOME}/.gnupg/S.gpg-agent.ssh

Isso é necessário para armazenar as senhas das chaves de autenticação gpg E das minhas chaves ssh.

Eu quero esse tipo de configuração para usar o KeePassXC com seu recurso de integração ssh-agent, para que todas as senhas aleatórias para minhas chaves ssh sejam armazenadas lá e serão adicionadas ao gpg-agent (em vez do ssh-agent) quando o banco de dados KeePassXC for desbloqueado. Por outro lado, as senhas para minhas chaves de autenticação gpg serão armazenadas nativamente no gpg-agent.

Alguém sabe como posso configurar globalmente env vars? Se eu configurá-los para todo o usuário em meu ~/.zshrc, o KeepassXC ainda iniciará o ssh-agent em paralelo com o gpg-agent e os adicionará ao ssh-agent do sistema em vez do gpg-agent.

O objetivo final é desabilitar completamente o ssh-agent, certificando-se de que o KeePassXC não o inicie, mas use o gpg-agent.

Eu tentei definir variáveis ​​​​env com 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

Parece bom, mas então:

$ echo $SSH_AUTH_SOCK
/private/tmp/com.apple.launchd.IjNASGcnxM/Listeners

Parece que a variável definida com launchd é ignorada...

informação relacionada