GnuPG place son socket S.gpg-agent
à ~/.gnupg/S.gpg-agent
par défaut. Je n'ai trouvé aucun moyen de configurer l'emplacement de cette socket, ni semble-t-il qu'il existe une page de manuel de gpg.conf
.
Arrière-plan: je souhaite créer un lien symbolique ~/.gnupg
avec un montage OpenAFS ne prenant pas en charge les sockets (et évite de créer un lien symbolique pour chaque fichier dans ~/.gnupg
(ce qui est une solution de contournement) au lieu de ~/.gnupg
), c’est-à-dire trouver la solution la plus élégante imo.
Depuis la version 2.1.1 de GnuPG, il existe une solution: placez un agent S.gpg-fichier texte simple dans gpg-homedir avec le contenu suivant:
%Assuan%
socket=/path/to/where/ever/you/want/S.gpg-agent
Il remplace certains événements comme ${HOME}
ou ${HOSTNAME}
Soyez prudent lorsque vous utilisez un sous-répertoire de /tmp
, car gpg-agent ne créera pas les répertoires nécessaires.
Autres lectures sur: https://dev.gnupg.org/T1752
La solution de l'utilisateur ruhri ne fonctionnait pas pour nous sur nos systèmes stretch Debian. Au moins, nous avons dû ajouter plus de "redirections" de socket. Voici ce qui a fonctionné pour nous.
Créez le fichier .gnupg/S.gpg-agent
comme décrit par ruhri:
%Assuan%
socket=/srv/scratch/joeuser/S.gpg-agent
Ajoutez ces deux lignes à la fin de .gnupg/gpg-agent.conf
(crée un fichier s'il n'existe pas déjà):
extra-socket /srv/scratch/joeuser/S.gpg-agent.extra
browser-socket /srv/scratch/joeuser/S.gpg-agent.browser
Créez le fichier .gnupg/S.gpg-agent.ssh
similaire au fichier .gnupg/S.gpg-agent
:
%Assuan%
socket=/srv/scratch/joeuser/S.gpg-agent.ssh
(Cette solution provient d’un commentaire sur le message à l’adresse suivante: https://michaelheap.com/gpg-cant-connect-to-the-agent-ipc-connect-call-failed/ )