SSH Authentication with FIDO2¶
Compatible Nitrokeys |
|||||||
|---|---|---|---|---|---|---|---|
✓ active |
✓ active |
⨯ inactive |
⨯ inactive |
✓ active |
⨯ inactive |
⨯ inactive |
⨯ inactive |
SSH (Secure Shell) es un protocolo de red utilizado para acceder y gestionar de forma segura sistemas remotos como servidores o repositorios de código (por ejemplo, GitLab, GitHub). Utiliza pares de claves criptográficas para la autenticación, permitiendo inicios de sesión sin contraseña con una fuerte seguridad. Con Nitrokey, la clave SSH privada se genera y almacena directamente en el dispositivo, por lo que nunca sale del hardware. Cada inicio de sesión requiere tocar la Nitrokey, lo que añade una simple confirmación física que protege contra el acceso no autorizado.
Generating SSH Key¶
Insert the Nitrokey into your computer.
Abra un terminal y cree su clave SSH. Reemplace
"your_comment"con una etiqueta para identificarla (por ejemplo, «Nitrokey GitLab»). Por defecto, la clave es una clave no residente, lo que significa que la clave local se almacena en~/.ssh/mientras que la clave privada permanece segura en la Nitrokey. Utilice la opción-O residentsi desea que la clave sea portable entre sistemas.ssh-keygen -t ed25519-sk -C "your_comment"o para crear una clave residente
ssh-keygen -t ed25519-sk -O resident -C "your_comment"Nota
Las claves residentes pueden listarse e importarse posteriormente en otro sistema con:
ssh-keygen -KDurante la generación de la clave, también se le puede pedir que establezca una frase de contraseña. Esta frase de contraseña cifra la clave local almacenada en
~/.ssh/(no la clave privada de Nitrokey, que siempre permanece segura dentro del dispositivo). La frase de contraseña es diferente del PIN del dispositivo FIDO2. El PIN protege la clave física en sí, mientras que la frase de contraseña protege su archivo de clave pública SSH local. Recomendamos utilizar una frase de contraseña sólo para proteger claves no residentes.Cuando se le pida una ruta de archivo, acepte la opción por defecto (
~/.ssh/id_ed25519_sk) o elija un nombre personalizado comoid_ed25519_sk_gitlab.Si la Nitrokey parpadea, confirme la operación tocándola.
Finalmente se crearán los siguientes archivos. Los nombres de los archivos pueden diferir si especificó un nombre personalizado al generar la clave.
~/.ssh/id_ed25519_sk→ Mango de la clave privada (almacenada de forma segura en la Nitrokey).
~/.ssh/id_ed25519_sk.pub→ archivo de clave pública
Adding Your Public Key¶
Una vez generado su par de claves SSH, debe añadir la clave pública al servicio o servidor al que desea acceder.
Display your public key:
cat ~/.ssh/id_ed25519_sk.pubEjemplo de salida (no utilice esta tecla):
sk-ssh-ed25519@openssh.com AAAAGnNrLXNzaC1lZDI1NTE5QG7wZW4zc2guY29tAAAAILeZl6r07HV4i1rK07OfLqD3J4IzX2q0lB6Ok0pdxoG5AAAABHNzaDo= your_comment
Copia el resultado y añádelo a la configuración de la clave SSH de tu cuenta. Consulta GitLab <https://docs.gitlab.com/user/ssh/#add-an-ssh-key-to-your-gitlab-account> o GitHub <https://docs.github.com/en/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account> para ver los pasos detallados. Para habilitar el acceso remoto SSH al servidor, añade tu clave pública al archivo
~/.ssh/authorized_keysde tu cuenta de usuario en el servidor SSH.