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-agent
comme 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 ps
signale un gpg-agent --supervised
processus 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-agent
j'exécute le logiciel fourni avec openssh.
La documentation indique que cela ssh-add
devrait 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-keygen
dans gpg-agent
, et quelqu'un peut-il couper et coller une session de terminal montrant comment cela fonctionne?
Réponses:
La réponse était apparemment de courir:
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 lagpg-agent
visibilité est faible sur l'endroit où vos secrets sont copiés. Si vous avez posé cette question parce que vous espériezgpg-agent
être une meilleure alternativessh-agent
, alors je vous encourage à vous y tenir aussh-agent
lieu d'essayer ma réponse. La principale raison de préférergpg-agent
est si vous en avez besoin pour utiliser une carte à puce.la source
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-add
dé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.
la source