• [^] # Re: Je n'ai jamais rien compris à PGP.

    Posté par . En réponse à la dépêche Bien démarrer avec GnuPG. Évalué à 7.

    le problème du ssh-agent/gpg-agent est traité depuis des années avec des solutions diverses : mes essais du jour, sous Debian/Buster n'ont pas été concluants : j'ai toujours un agent ssh qui se lance :(:(

    Le problème de l’agent SSH qui démarre alors que tu ne le veux pas, c’est malheureusement hors de portée de GnuPG, c’est plutôt au niveau du système (de la distribution) que ça se passe.

    Je n’utilise pas assez Debian pour être d’une grande aide, mais ce serait un bon début d’identifier quel agent se lance : est-ce que c’est le ssh-agent fourni avec OpenSSH, ou est-ce que c’est cette plaie de GNOME Keyring Manager ?

    Si c’est le GNOME Keyring Manager, il est probablement lancé par un fichier gnome-keyring-ssh.desktop dans /etc/xdg/autostart. Si c’est le cas, tu peux le désactiver en « surchargeant » ce fichier, en plaçant un fichier avec le même nom dans ton $XDG_CONFIG_HOME/autostart et contenant ;

    [Desktop Entry]
    Type=Application
    Name=SSH Key Agent
    Hidden=true
    

    (Peut-être que GNOME fournit un outil graphique permettant de configurer ce genre de choses sans avoir à manipuler les fichiers .desktop soi-même. Oh pardon, je viens de réaliser que j’ai écrit « GNOME » et « configurer » dans la même phrase, je ne sais pas ce qui m’a pris.)

    Cela dit, au pire, même si un agent SSH non-désiré continue à se lancer, dans le fond ce n’est pas grave, l’essentiel est que SSH contacte bien l’agent GnuPG et pas un autre. Et pour ça, normalement la seule chose à faire est de définir la variable SSH_AUTH_SOCK pour qu’elle pointe vers la socket de l’agent GnuPG et non vers celle du GNOME Keyring Manager, en ajoutant la ligne suivante dans un script exécuté au démarrage de la session graphique (p.ex ~/.xprofile) ou au pire au démarrage d’un shell (p.ex ~/.bashrc) :

    export SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-ssh-socket)

    En gros peu importe comment, mais il faut que $SSH_AUTH_SOCK pointe vers /var/run/user/<uid>/gnupg/S.gpg-agent.ssh et non vers la socket de n’importe quel autre agent ta distribution ou ton environnement de bureau a cru bon de démarrer.