SSH¶
✓ |
⨯ |
⨯ |
⨯ |
⨯ |
✓ |
✓ |
✓ |
This guide explains how to prepare your SSH server and client for use with the Nitrokey. For configuring PuTTY, see this guide:
El Nitrokey debería tener ya instaladas las claves PGP y el llavero local de GnuPG debería conocer las claves.
Preparación en el cliente¶
Asegúrese de que ~/.gnupg/gpg.conf contiene “use-agent”
Añade soporte ssh a gnupg-agent añadiendo “enable-ssh-support” a ~/.gnupg/gpg-agent.conf
Si el archivo no existe todavía, puede crearlo.
Añade el siguiente código en algún lugar de tu ~/.bashrc (para la cáscara del pez, mira aquí)
unset SSH_AGENT_PID
if [ "${gnupg_SSH_AUTH_SOCK_by:-0}" -ne $$ ]; then
export SSH_AUTH_SOCK="$(gpgconf --list-dirs agent-ssh-socket)"
fi
Simplemente reinicie su sistema o intente
pkill gpg-agent
y abra una nueva línea de comandos para asegurarse de que todo está configuradoEn caso de problemas, por favor intente
gpg2 --card-status
en el primer uso para asegurarse de que el agente gpg se inicia
Preparación del servidor¶
Puede generar un archivo authorized_keys ejecutando
gpg2 --export-ssh-key keyID >> ~/authorized_keys
donde
keyID
es el id de la subclave que se utiliza para la autenticación en su Nitrokey. La Nitrokey ya debe ser conocida por el llavero local de GnuPG. Ahora puedes añadir ese archivo a un servidor remoto’s authorized_keys y cuando te conectes al servidor’se te pedirá un pin en lugar de una frase de contraseña.
Solución de problemas¶
Si se le sigue pidiendo una contraseña, asegúrese de que
echo $SSH_AUTH_SOCK
devuelve algo como “/run/user/1000/gnupg/S.gpg-agent.ssh” o “/home/nombredeusuario/.gnupg/.S.gpg-agent.ssh”. Desafortunadamente, hubo algunos cambios en GnuPG en el pasado, por lo que el contenido real puede diferir del sistema y de la versión de GnuPG. En algunos sistemas puede haber incluso múltiples carpetas en esta variable guardada. Tienes que adaptar el código dado arriba en el .bashrc para que la variable SSH_AUTH_SOCK sea correcta. En caso de duda busque “SSH_AUTH_SOCK” en
man gpg-agent
para encontrar el código real de su versión/sistema.
Puede comprobar si tiene un programa “pinentry” instalado a través de su gestor de paquetes. Puede que tenga que configurarlo en el gpg-agent.conf también. Es posible que tenga que señalar a gpg-agent el TTY correcto.