J'ai un Yubikey4 chargé avec ma clé gpg, agissant comme une carte à puce. Je peux faire gpg2 card-status
et cela me donne tout ce dont j'ai besoin en montrant toutes mes sous-clés et tout va bien.
J'ai ensuite voulu utiliser gpg-agent pour me connecter en ssh sur des hôtes distants en utilisant ma clé gpg. J'ai ajouté ce qui suit à mon ~/.gnupg/gpg-agent.conf
enable-ssh-support
pinentry-program /usr/bin/pinentry-curses
default-cache-ttl 60
J'ai également défini le SSH_AUTH_SOCK
dans mon fichier .bashrc de cette manière:
export SSH_AUTH_SOCK=~/.gnupg/S.gpg-agent.ssh
Si je redémarre ensuite ma machine, la clé est ajoutée et visible avec ssh-add -l
4096 SHA256....... cardno: ..... (RSA)
Mais toutes les tentatives de connexion ssh vers un serveur distant restent bloquées, ssh -vvv
me dit que la machine essaie de signer et d'envoyer la clé, mais l'agent refuse l'opération.
Si j'exécute ensuite un script que j'ai créé en combinant diverses sources, tout fonctionne.
killall gpg
export SSH_AUTH_SOCK=~/.gnupg/S.gpg-agent.ssh; gpg-agent --daemon --keep-tty --use-standard-socket --pinentry-program=/usr/bin/pinentry-curses
J'ai essayé de mettre cela en œuvre en utilisant bashrc, en l'exécutant avec mon gestionnaire de bureau et une tâche système utilisateur sans succès.
Est-ce que quelqu'un pourrait m'aider à comprendre comment démarrer cela automatiquement à la connexion, sans avoir besoin d'exécuter "mon script"?