Genera un par de claves SSH o RSA sin instalar nada
Este generador crea un nuevo par de claves Ed25519, ECDSA (P-256, P-384, P-521) o RSA (2048, 3072, 4096 bits) con la Web Crypto API de tu navegador y lo exporta como lo necesites: una clave privada OpenSSH y una línea de <code>authorized_keys</code>, exactamente como las produciría <code>ssh-keygen</code>; archivos PEM PKCS#8 y SPKI para OpenSSL, TLS y bibliotecas JWT; un JWK público; y la huella <code>SHA256:</code>. Las claves se generan en tu dispositivo y la clave privada nunca sale de esta página.
Cómo generar un par de claves SSH
- 1Elige el tipo de clave: Ed25519 es la opción moderna por defecto para SSH; elige RSA para servidores antiguos y para claves de firma PEM o JWT.
- 2Si quieres, escribe un comentario, normalmente
user@host, para reconocer la clave más tarde enauthorized_keys. - 3Pulsa Generar. Descarga la clave privada como
id_ed25519(oid_rsa,id_ecdsa) y la pública con el mismo nombre más.pub. - 4Mueve ambas a
~/.ssh/, ejecutachmod 600 ~/.ssh/id_ed25519y añade la línea de la clave pública al~/.ssh/authorized_keysdel servidor o a los ajustes de claves SSH de tu servicio Git.
¿Qué tipo de clave debo elegir?
- Ed25519
- Pequeña (una clave pública de 68 caracteres), rápida y resistente a errores de implementación. Compatible con OpenSSH 6.5 y posteriores, GitHub, GitLab y cualquier servidor actual. La mejor opción para SSH hoy.
- ECDSA (P-256, P-384, P-521)
- Curvas NIST, necesarias cuando las normas de cumplimiento lo exigen o donde no se acepta Ed25519, como algunos tokens de hardware y servicios de claves en la nube.
- RSA
- La opción más compatible, incluidos servidores SSH muy antiguos y muchas bibliotecas TLS y JWT (RS256). Usa al menos 3072 bits para claves que deban durar más allá de 2030; 2048 es el mínimo que aún se considera aceptable.
Los formatos, explicados
- Clave privada OpenSSH
- <code>-----BEGIN OPENSSH PRIVATE KEY-----</code>, el formato que <code>ssh-keygen</code> escribe por defecto. Aquí se genera sin cifrar; añade una frase de contraseña después con <code>ssh-keygen -p -f id_ed25519</code>.
- Clave pública OpenSSH
- Una línea, <code>ssh-ed25519 AAAA… comment</code>, para <code>authorized_keys</code>, GitHub, GitLab y consolas en la nube.
- Clave privada PKCS#8 (PEM)
- <code>-----BEGIN PRIVATE KEY-----</code>, el contenedor estándar que leen OpenSSL, Java, Node.js, Go y la mayoría de bibliotecas JWT para cualquier tipo de clave.
- Clave pública SPKI (PEM)
- <code>-----BEGIN PUBLIC KEY-----</code>, la forma X.509 SubjectPublicKeyInfo que se usa para verificar firmas y en la configuración de verificación de JWT.
- JWK
- La clave pública en JSON (RFC 7517), con una huella <code>kid</code>, lista para publicar en un endpoint JWKS.
Huellas
La huella es un hash SHA-256 de la clave pública en formato wire de SSH, codificado en Base64 sin relleno: SHA256:…. Es lo que imprime ssh-keygen -lf id_ed25519.pub, lo que GitHub muestra junto a cada clave y lo que SSH enseña cuando te pide confiar en un host nuevo. Comparar huellas es la forma de comprobar que dos copias de una clave pública son la misma clave.
¿Es seguro generar claves en un navegador?
Las claves salen de crypto.subtle.generateKey, la criptografía integrada del navegador, que usa el generador seguro de números aleatorios del sistema operativo, la misma fuente que usa ssh-keygen. No se envía nada por la red: puedes cargar esta página, desconectarte y generar claves sin conexión.
Para claves que protegen sistemas de producción, el lugar más seguro para generarlas sigue siendo la máquina que las va a usar, con ssh-keygen -t ed25519, o una llave de hardware. Esta herramienta es ideal para entornos de prueba, claves de despliegue de CI, claves de firma JWT y máquinas sin OpenSSH. Para inspeccionar un certificado basado en una clave así, usa el decodificador de certificados.
Preguntas frecuentes
- ¿Cómo genero una clave SSH online?
- Elige Ed25519, escribe un comentario como tu correo, pulsa Generar y descarga la clave privada (id_ed25519) y la pública (id_ed25519.pub). Pon ambas en ~/.ssh y añade la línea .pub al servidor o a tu servicio Git.
- ¿Es Ed25519 mejor que RSA?
- Para SSH, sí: las claves Ed25519 son mucho más cortas, más rápidas de usar y ofrecen una seguridad comparable a RSA-3072. Elige RSA solo para sistemas que no admitan Ed25519.
- ¿Por qué Ed25519 no está disponible en mi navegador?
- Ed25519 llegó a la Web Crypto API en Firefox 129, Safari 17 y Chrome 137. En un navegador más antiguo, actualízalo o elige ECDSA o RSA.
- ¿Puedo añadir una frase de contraseña a la clave privada?
- La clave se genera sin ella. Añádela en tu propia máquina con ssh-keygen -p -f ~/.ssh/id_ed25519, que cifra el archivo en su sitio.
- ¿Cómo convierto la clave al formato .ppk de PuTTY?
- Abre PuTTYgen, elige Load, selecciona la clave privada OpenSSH que descargaste y guárdala como clave privada. PuTTYgen lee el formato OpenSSH directamente.
- ¿Qué archivo va en el servidor?
- Solo la clave pública, la única línea del archivo .pub, añadida a ~/.ssh/authorized_keys. La clave privada se queda en tu ordenador y nunca debe compartirse.
- ¿Por qué SSH dice que los permisos de mi clave privada son demasiado abiertos?
- SSH rechaza claves privadas que otros usuarios pueden leer. Ejecuta chmod 600 sobre el archivo de la clave privada y chmod 700 sobre el directorio ~/.ssh.
- ¿Se envían las claves a un servidor?
- No. Las genera la Web Crypto API de tu navegador en esta página y solo existen en memoria hasta que las descargas o copias.