¿Qué es un par de claves SSH?

Un par de claves SSH es un conjunto de dos claves criptográficas utilizadas para autenticar a un usuario en un servidor remoto sin contraseña. El par consta de una clave privada, mantenida en secreto en la máquina del usuario, y una clave pública, colocada en el servidor remoto. Al conectarse, el servidor desafía al cliente a demostrar la posesión de la clave privada, sin transmitir nunca la clave privada en sí. Este enfoque asimétrico es significativamente más seguro que la autenticación basada en contraseña porque no hay un secreto compartido que pueda ser interceptado o forzado por fuerza bruta.

Los pares de claves SSH se generan utilizando algoritmos de criptografía de clave pública. Los más utilizados son Ed25519, un algoritmo moderno de curva elíptica conocido por su pequeño tamaño de clave y alta seguridad, y RSA, un algoritmo probado en el tiempo que se basa en la dificultad de factorizar números enteros grandes. Ed25519 se recomienda para nuevas claves debido a su rendimiento superior y resistencia a ataques de canal lateral.

Descripción de la herramienta

El Generador de Pares de Claves SSH crea pares de claves SSH Ed25519 o RSA criptográficamente seguros directamente en tu navegador utilizando la API Web Crypto. Ningún dato se envía a un servidor — todo el material de clave se genera localmente en tu dispositivo. Opcionalmente, puedes añadir un comentario (típicamente usuario@nombredelhost) para ayudar a identificar la clave más tarde. Las claves públicas y privadas generadas se pueden copiar al portapapeles o descargar como archivos, listos para usar con ssh-copy-id o cualquier cliente SSH.

Ejemplos

Clave pública Ed25519

ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOMqqnkVzrm0SdG6UOoqKLsabgH5C9okWi0dh2l9GKJl usuario@nombredelhost

Clave pública RSA (4096-bit)

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC2... usuario@nombredelhost

Clave privada (formato OpenSSH)

-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAAB...
-----END OPENSSH PRIVATE KEY-----

Características

  • Soporte Ed25519 y RSA: Elige entre un algoritmo moderno de curva elíptica o el algoritmo RSA clásico
  • Opciones de tamaño de clave RSA: Selecciona claves RSA de 2048, 3072 o 4096-bit para equilibrar seguridad y rendimiento
  • Campo de comentario opcional: Adjunta un comentario de estilo usuario@nombredelhost para ayudar a identificar la clave en múltiples máquinas
  • Generación del lado del cliente: Las claves se generan completamente en tu navegador utilizando la API Web Crypto — nada se transmite ni se almacena
  • Descarga con un clic: Guarda los archivos de clave pública y privada directamente con nombres de archivo correctos (id_ed25519, id_ed25519.pub, id_rsa, id_rsa.pub)

Casos de uso

  • Configuración de acceso al servidor: Genera un par de claves una vez e implementa la clave pública en cualquier número de servidores Linux/Unix remotos a través de ~/.ssh/authorized_keys para habilitar el inicio de sesión SSH sin contraseña
  • Autenticación en alojamiento de Git: Añade la clave pública a GitHub, GitLab o Bitbucket para autenticar operaciones git push y git pull sin ingresar credenciales cada vez
  • Tuberías CI/CD: Crea un par de claves de implementación dedicado para scripts automatizados o agentes de compilación que necesiten acceso SSH a servidores o repositorios privados

Cómo funciona

La generación de claves utiliza la API crypto.subtle integrada del navegador (Web Crypto). Para Ed25519, el escalar privado de 32 bytes sin procesar y la clave pública de 32 bytes se empaquetan en el formato de cable OpenSSH (openssh-key-v1). Para RSA, la clave se exporta en formato PKCS#8 DER y se envuelve en un sobre PEM estándar. El blob de clave pública se codifica en el formato de cable SSH (nombre de algoritmo con prefijo de longitud seguido de material de clave) y se codifica en Base64, coincidiendo con el formato esperado por el archivo authorized_keys de OpenSSH.

Consejos

  • Después de descargar, establece los permisos correctos en el archivo de clave privada: chmod 600 ~/.ssh/id_ed25519. SSH se negará a usar una clave privada que sea legible por otros usuarios.
  • Usa Ed25519 a menos que necesites compatibilidad con sistemas antiguos que no lo admitan. Produce claves más cortas y es más rápido que RSA.
  • El campo de comentario no afecta la fortaleza criptográfica de la clave — es puramente para identificación humana y se puede cambiar más tarde con ssh-keygen -c.
  • Para máxima compatibilidad de RSA con servidores heredados, usa claves de 4096-bit. Para servidores modernos, Ed25519 es preferido independientemente del tamaño de clave RSA.