¿Cómo usar YubiKey a través de GnuPG en un servidor remoto?

3

Me pregunto si es posible usar un Yubikey para desbloquear, por ejemplo, una clave GnuPG en un servidor, ¿puedo pasar el token generado de la YubiKey a través de SSH al servidor de una manera fácil?

    
pregunta Ragadabing 28.07.2017 - 21:42
fuente

2 respuestas

5

GnuPG no utiliza ningún token generado por Yubikey, pero el stick implementa el protocolo de tarjeta inteligente OpenPGP. Las claves se almacenan en la YubiKey, que realiza todas las operaciones criptográficas de clave pública / privada. La protección especial se basa en el hecho de que las claves nunca pueden abandonar la YubiKey, por lo que un atacante podría utilizar la clave a lo sumo (temporalmente, siempre y cuando tenga acceso a la palanca desbloqueada), pero no puede obtenerla por completo. .

GnuPG tiene una función llamada reenvío de agente . La mayoría de las veces se reduce a configurar gpg-agent para proporcionar un socket extra especial que solo se usa para operaciones específicas:

extra-socket /home/<user>/.gnupg/S.gpg-agent.extra

Luego, configure SSH para reenviar todas las comunicaciones en el zócalo al servidor remoto:

RemoteForward /home/<user>/.gnupg/S.gpg-agent /home/<user>/.gnupg/S.gpg-agent.extra

Más explicaciones que incluyen algunos consejos sobre nitpicks están disponibles en la página wiki vinculada anteriormente.

    
respondido por el Jens Erat 28.07.2017 - 22:12
fuente
0

En las nuevas versiones de distribuciones GnuPG o Linux, las rutas de los sockets pueden cambiar. Estos se pueden encontrar a través de

$ gpgconf --list-dirs agent-extra-socket

y

$ gpgconf --list-dirs agent-socket

Luego agregue estas rutas a su configuración de SSH:

Host remote
  RemoteForward <remote socket> <local socket>

Solución rápida para copiar las claves públicas:

scp .gnupg/pubring.kbx remote:~/.gnupg/

En la máquina remota, active el agente GPG:

echo use-agent >> ~/.gnupg/gpg.conf

En la máquina remota, también modifique la configuración del servidor SSH y agregue este parámetro (/ etc / ssh / sshd_config):

StreamLocalBindUnlink yes

Reinicie el servidor SSH, vuelva a conectarse a la máquina remota, entonces debería funcionar.

    
respondido por el Matthias Lohr 07.06.2018 - 09:42
fuente

Lea otras preguntas en las etiquetas