Estoy usando openssh7.5p1 y gnupg 2.1.21 en arch linux (estas son las versiones predeterminadas que vienen con arch). Me gustaría usarlo gpg-agentcomo agente ssh. Puse lo siguiente en mi ~/.gnupg/gpg-agent.conf:
pinentry-program /usr/bin/pinentry-qt
enable-ssh-support
Arch inicia automáticamente un agente gpg desde systemd, así que configuré
export SSH_AUTH_SOCK="$XDG_RUNTIME_DIR/gnupg/S.gpg-agent.ssh"
Cuando ejecuto ssh-add -l, no informa identidades e psinforma un gpg-agent --supervisedproceso como era de esperar.
Desafortunadamente, cuando ejecuto ssh-add, no importa el tipo de clave, no funciona. Aquí hay un ejemplo de cómo probé 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
Todas las demás funciones de GPG funcionan correctamente (cifrado / descifrado / firma). Además, las claves que genero funcionan bien si las uso directamente con ssh, y funcionan correctamente si ejecuto el ssh-agentque viene con openssh.
La documentación dice que ssh-adddebería agregar claves ~/.gnupg/sshcontrol, pero obviamente no está sucediendo nada.
Mi pregunta: ¿Cuál es la forma más fácil de cargar una clave generada por el de OpenSSH ssh-keygenen gpg-agent, y por favor alguien puede cortar y pegar una sesión de terminal que muestra cómo funciona este?

Respuestas:
La respuesta aparentemente fue correr:
No tengo idea de por qué el programa de pinentry funcionó bien para otros usos, como descifrar archivos, pero no funcionó
ssh-add.Si bien esto ahora funciona, también hace una copia de la clave privada ssh que no aparece debajo
gpg -Kv, y además no parece permitirle cambiar la frase de contraseña en su clave privada (ya que no puede editarla con--edit-key) . Básicamente, estoy bastante descontento con la forma en quegpg-agentproporciona poca visibilidad de dónde se copian sus secretos. Si responde a esta pregunta porque esperaba quegpg-agentpudiera ser una mejor alternativassh-agent, entonces le animo a que se quede enssh-agentlugar de probar mi respuesta. La razón principal para preferirgpg-agentes si necesita usar tarjetas inteligentes.fuente
En mi caso, el problema era el programa de pinentry utilizado. Estaba usando pinentry-emacs. Parece que no maneja la ventana de entrada de campo de texto dual que se
ssh-addactiva cuando se usa con gpg-agent.Eliminar pinentry-emacs e instalar la pinentry GTK resolvió el problema aquí.
fuente