Eu quero usar gpg-agent
em vez de ssh-agent
no 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 para as chaves de autenticação gpg E para as minhas chaves ssh.
Eu quero este tipo de configuração para usar o KeePassXC com seu recurso de integração ssh-agent, então todas as senhas aleatórias para minhas chaves ssh são armazenadas lá e serão adicionadas ao gpg-agent (em vez de ssh-agent) quando O banco de dados KeePassXC está desbloqueado. Por outro lado, as senhas das minhas chaves de autenticação gpg serão armazenadas nativamente no gpg-agent.
Alguém sabe como eu posso configurar globalmente env vars? Se eu configurá-los em todo o usuário em ~/.zshrc
, o KeepassXC ainda iniciará o ssh-agent em paralelo com o gpg-agent e os adicionará ao ssh-agent do sistema, em vez de gpg-agent.
O objetivo final é desabilitar completamente o ssh-agent, certificando-se de que o KeePassXC não o iniciará, mas usará 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 depois:
$ echo $SSH_AUTH_SOCK
/private/tmp/com.apple.launchd.IjNASGcnxM/Listeners
Portanto, parece que a variável definida com o launchd é ignorada ...