gpg-agent à la place de ssh-agent

J'ai un Yubikey 4 et je veux utiliser mes keys GPG stockées sur ceci pour s'authentifier sur les servers SSH.
Je veux utiliser GitHub pour commencer. J'ai déjà ajouté ma key d'authentification GPG à GitHub.

Mon problème est que quand je ssh, mon agent n'utilise pas cette key. J'ai vérifié en essayant de se connecter à mon VPS avec ssh -v mais il saute ma key GPG. My Yubikey est branché et gpg2 --card-status affiche tous les détails. Je suis capable de signer et déchiffrer très bien ainsi que d'utiliser les autres fonctionnalités du Yubikey.

La sortie ssh

 debug1: Authentications that can continue: publickey debug1: Next authentication method: publickey debug1: Trying private key: /home/wilhelm/.ssh/id_rsa debug1: Trying private key: /home/wilhelm/.ssh/id_dsa debug1: Trying private key: /home/wilhelm/.ssh/id_ecdsa debug1: Trying private key: /home/wilhelm/.ssh/id_ed25519 debug1: No more authentication methods to try. Permission denied (publickey). 

J'ai désactivé le gestionnaire de mot de passe de gnome.

J'ai regardé login SSH et Git à gpg-agent et a suivi la suggestion, mais cela ne semble pas fonctionner.

 ╰─ ssh-add -l Could not open a connection to your authentication agent. ╰─ ps aux | grep gpg-agent wilhelm 26079 0.0 0.0 20268 980 ? Ss 20:57 0:00 gpg-agent --daemon --enable-ssh-support --sh wilhelm 31559 0.0 0.0 12724 2184 pts/1 S+ 22:49 0:00 grep --color=auto --exclude-dir=.bzr --exclude-dir=CVS --exclude-dir=.git --exclude-dir=.hg --exclude-dir=.svn gpg-agent 

ssh ne peut pas ouvrir la connection à votre gpg-agent si vous ne lui donnez pas le moyen de le faire.

Lorsque vous démarrez votre gpg-agent avec l'option --enable-ssh-support , il affiche les variables environnementales qui doivent être disponibles dans le shell depuis lequel vous utiliserez votre ssh . Il y a peu de possibilités pour les get:

  • Arrêtez votre gpg-agent et recommencez comme dans le shell où vous utilisez votre ssh (cela devrait être le moyen le plus simple de le tester):

     eval $(gpg-agent --daemon --enable-ssh-support --sh) 
  • Trouvez l'location du socket d'authentification et configurez la variable d'environnement SSH_AUTH_SOCK à la main

Par la suite, lorsque vous saurez que cela fonctionne, vous devriez configurer le démarrage de l'agent en fonction de la page de manuel de gpg-agent(1) , donc probablement dans ~/.xsession pour le laisser démarrer automatiquement.