El uso de gpg desde un entorno basado en la consola, como las sesiones ssh, falla porque el diálogo de pinentry GTK no se puede mostrar en una sesión SSH.
Lo intenté unset DISPLAY
pero no sirvió de nada. Las opciones de línea de comando GPG no incluyen un interruptor para forzar la entrada al modo consola.
Las versiones anteriores de GPG ofrecían un mensaje basado en texto que funcionaba bien en las sesiones SSH, pero después de la actualización simplemente falla.
Existe el --textmode
cambio de línea de comando pero aparentemente, hace algo más.
¿Cuál sería la forma correcta y limpia de obtener una entrada de pin de texto sin formato para sesiones remotas?
DISPLAY="" gpg2 ...
me ayudó, también instalé pinentry-curses + pinentry-tty de antemano, no estoy seguro de si son estrictamente necesariosRespuestas:
Para cambiar la pinentry permanentemente, agregue lo siguiente a su
~/.gnupg/gpg-agent.conf
:(En versiones anteriores que carecen de pinentry-tty, use pinentry-curses para una ventana de diálogo de 'terminal completo').
Dígale al agente GPG que vuelva a cargar la configuración:
fuente
gpg-agent
debería misma detectar la presencia o ausencia de$DISPLAY
y elige el pinentry apropriate ...DISPLAY
definido no necesariamente significa que puedo o quiero usarlo, por ejemplo, cuando estoy conectado a través de SSH.su
no cambia la propiedad de su TTY, por lo que debe hacerlo manualmentechown
. Ver este artículo .ls /usr/bin | grep pinentry
. Veopinentry
,pinentry-curses
,pinentry-emacs
,pinentry-gnome3
,pinentry-gtk2
,pinentry-qt
ypinentry-tty
. De esta manera, puede elegir el que más le convenga, si no tiene$DISPLAY
problemas.Acabo de tener este problema en Ubuntu 16.04.3 al intentar generar / instalar una clave privada usando gpg2 (2.1.11) en una cuenta del sistema sin contraseña, y en una cuenta de usuario a través de ssh. Nada funcionó dando:
Entonces encontré esto que funcionó para mí, así que en resumen:
fuente
En una caja de Debian:
(y configúrelo en pinentry-tty)
fuente
En Ubuntu 18.04, con la instalación predeterminada de gpg 2.2.4, tengo
Pude hacer lo siguiente para tener una entrada de PIN basada en texto:
fuente
Si no lo tiene, instálelo
pinentry-curses
con yum o apt-get.Entonces corre:
sudo update-alternatives --config pinentry
Y seleccione pinentry-curses de la lista.
fuente
Copiaré mi respuesta desde aquí ...
Mirando
man pinentry-gnome3
, veo esto:Desafortunadamente, este respaldo en modo texto no funciona para mí. Parece que otros tienen el mismo problema . Sin embargo, este comentario estimuló mi probar un programa de pines de entrada de interfaz gráfica de usuario diferente:
pinentry-gtk2
. Puedes cambiar así:Una vez que cambié, ¡funcionó perfectamente para mí! En una terminal en el escritorio, usará la entrada de contraseña de la GUI, pero cuando ingrese a mi máquina, usará una entrada de contraseña en modo texto.
fuente
Para evitar la ventana emergente de pinentry que podrías
ssh localhost
. Opcionalmente forzando X11 deshabilitado,-x Disables X11 forwarding.
vea el ejemplo completo a continuación.fuente
-x Disables X11 forwarding.
debería evitar cualquier reenvío X11. La respuesta está actualizada.Encontré el "ejemplo completo" en la respuesta de PvdL un poco confuso, esto es lo que hago:
fuente
Si lo hace
export GPG_TTY=$(tty)
yunset DISPLAY
se le dará un cuadro de diálogo TLI pidiendo la frase de contraseña. Escribir la frase de contraseña correcta hace que se descifre.Si NO realiza la exportación anterior de GPG_TTY y desarma DISPLAY, espera usar X Windows. Si inició su sesión (como PuTTY) desde un sistema MS-Windows con el reenvío X11 activado, quiere enviar el cuadro de diálogo X-Window a su sistema MS Windows. Puede usar un emulador X como Exceed o Cygwin / X en Windows para permitir que aparezca el mensaje de X-Window para la frase de contraseña en su cuadro de MS-Windows.
Sin embargo, puede eliminar la necesidad de configurar GPG_TTY y deshabilitar DISPLAY y obtener el TLI o la GUI ejecutando la línea de comando con
--batch
opción y colocando la frase de contraseña con la--passphrase
opción:Los 3 métodos me funcionaron hoy en RHEL6 con gnupg2.
fuente
export GPG_TTY=$(tty)
es suficiente. ¿Has intentado eso? ¿Tiene una referencia que dice que tambiénunset DISPLAY
es necesario? PD A la gente no le gusta poner frases de contraseña en la línea de comando.