gpg-agent refuse les clés SSH avec ssh-add signalant «opération refusée par l'agent»


12

J'utilise openssh7.5p1 et gnupg 2.1.21 sur arch linux (ce sont les versions par défaut fournies avec arch). Je voudrais utiliser gpg-agentcomme agent ssh. Je mets ce qui suit dans mon ~/.gnupg/gpg-agent.conf:

pinentry-program /usr/bin/pinentry-qt
enable-ssh-support

Arch démarre automatiquement un gpg-agent à partir de systemd, donc je mets

export SSH_AUTH_SOCK="$XDG_RUNTIME_DIR/gnupg/S.gpg-agent.ssh"

Lorsque je cours ssh-add -l, il ne signale aucune identité et pssignale un gpg-agent --supervisedprocessus comme je m'y attendais.

Malheureusement, lorsque je cours ssh-add, quel que soit le type de clé, cela ne fonctionne pas. Voici un exemple de la façon dont j'ai essayé dsa:

$ ssh-keygen -f testkey -t dsa -N ''
Generating public/private dsa key pair.
Your identification has been saved in testkey.
Your public key has been saved in testkey.pub.
$ ssh-add testkey
Could not add identity "testkey": agent refused operation

Toutes les autres fonctions gpg fonctionnent correctement (cryptage / décryptage / signature). De plus, les clés que je génère fonctionnent correctement si je les utilise directement avec ssh, et elles fonctionnent correctement si ssh-agentj'exécute le logiciel fourni avec openssh.

La documentation indique que cela ssh-adddevrait ajouter des clés ~/.gnupg/sshcontrol, mais évidemment rien ne se passe.

Ma question: quel est le moyen le plus simple de charger une clé générée par openssh ssh-keygendans gpg-agent, et quelqu'un peut-il couper et coller une session de terminal montrant comment cela fonctionne?


La réponse acceptée m'a aidé, merci d'avoir soulevé cette question. Cela m'arrive de temps en temps, y a-t-il une solution permanente?
gf_

Réponses:


27

La réponse était apparemment de courir:

echo UPDATESTARTUPTTY | gpg-connect-agent

Je ne sais pas pourquoi le programme Pinentry a bien fonctionné pour d'autres utilisations telles que le décryptage de fichiers, mais n'a pas fonctionné ssh-add.

Bien que cela fonctionne maintenant, il crée également une copie de la clé privée ssh qui n'apparaît pas sous gpg -Kv, et ne semble pas non plus vous permettre de modifier la phrase secrète de votre clé privée (puisque vous ne pouvez pas la modifier avec --edit-key) . Fondamentalement, je suis assez mécontent de la façon dont la gpg-agentvisibilité est faible sur l'endroit où vos secrets sont copiés. Si vous avez posé cette question parce que vous espériez gpg-agentêtre une meilleure alternative ssh-agent, alors je vous encourage à vous y tenir au ssh-agentlieu d'essayer ma réponse. La principale raison de préférer gpg-agentest si vous en avez besoin pour utiliser une carte à puce.


Où avez-vous trouvé cette réponse? Ça marche super!
CMCDragonkai

Merci pour cela, a fonctionné pour moi. Exécutez-vous cela régulièrement? À chaque démarrage / connexion? Une idée concernant une solution «correcte»?
gf_


2

Dans mon cas, le problème était le programme de pinentry utilisé. J'utilisais des pinentry-emacs. Il semble qu'il ne gère pas l'invite de fenêtre de saisie de champ de texte double qui se ssh-adddéclenche lorsqu'il est utilisé avec gpg-agent.

La suppression de pinentry-emacs et l'installation du pinentry GTK ont résolu le problème ici.


Cela a finalement résolu mon problème après avoir trouvé un tas de sources qui m'ont dit de mettre à jour le tty de démarrage.
William Rosenbloom
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.