Lo uso gpg-agent
para administrar ambas identidades PGP e SSH. El agente se inicia con un script como este
gpg_agent_env="$XDG_CACHE_HOME/gpg-agent.env"
export GPG_TTY="$(tty)"
if ! ps -U "$USER" -o ucomm | grep -q gpg-agent; then
eval "$({gpg-agent --daemon | tee $gpg_agent_env} 2> /dev/null)"
else
source "$gpg_agent_env" 2> /dev/null
fi
que se obtiene cada vez que ejecuto un shell interactivo. Todo funciona bien con esta configuración, pero hay un problema. Digamos que yo:
- abrir una terminal (iniciar el agente en segundo plano) y comenzar a trabajar
- después de un tiempo abra una segunda terminal
- hacer una acción que requiera ingresar una frase de contraseña en la segunda terminal
En este punto gpg-agent
comenzará a pinentry-curses
solicitar una frase de contraseña, pero lo hará en el primer terminal, lo que da como resultado que su salida se mezcle con lo que se estaba ejecutando (generalmente un editor de texto) sin forma de reanudar el programa o detener la entrada (comienza a usar 100% de CPU y tengo que matarlo).
Debo estar haciendo algo mal aquí. Alguien ha experimentado esto?
Actualizar:
Me di cuenta de esto sólo ocurre a la solicitud para desbloquear una clave SSH, que se parece a este , mientras que las indicaciones de claves PGP siempre abierto en el (es decir, corriente) TTY correcta.
export GPG_TTY="$(tty)"
eso lo que me