Las llaves SSH en pocas palabras
Las llaves SSH sustituyen a las contraseñas para entrar en servidores, hacer push a plataformas Git y ejecutar pipelines
de despliegue. Un par de llaves tiene dos mitades: la llave privada, que nunca sale de tu equipo, y la
llave pública, que copias en ~/.ssh/authorized_keys de un servidor o pegas en GitHub, GitLab
o tu proveedor de CI. Al conectarte, el servidor reta a tu cliente a demostrar que posee la llave privada sin
transmitirla nunca.
Cómo elegir el tipo de llave
- Ed25519 es la opción moderna por defecto: llaves de 256 bits rápidas, compactas (la llave pública cabe en una línea corta) y resistentes a muchos errores de implementación.
- RSA ofrece la máxima compatibilidad con sistemas antiguos y equipos de red. Usa 3072 o 4096 bits; 2048 es el mínimo aceptable hoy en día.
- ECDSA (NIST P-256, P-384, P-521) la exigen a veces marcos de cumplimiento como FIPS.
La llave privada se puede exportar en el formato OpenSSH que usan los clientes ssh modernos o
como PEM (PKCS#8) para las bibliotecas y herramientas que lo requieren. Añadir una frase de contraseña
cifra el archivo de la llave privada, de modo que una copia robada es inútil sin ella.
Cómo usar tu nueva llave
chmod 600 ~/.ssh/id_ed25519 # la llave privada no debe ser legible por otros
ssh-copy-id -i ~/.ssh/id_ed25519.pub usuario@servidor
ssh -i ~/.ssh/id_ed25519 usuario@servidor
La huella SHA256 que se muestra junto a la llave es la que imprime ssh-keygen -lf y la que muestran los
servidores en la primera conexión, para que confirmes que instalaste la llave correcta.
Seguridad y privacidad
Las llaves se generan en nuestro servidor con la biblioteca auditada cryptography, se mantienen solo en
memoria durante la petición y se devuelven por HTTPS con la caché desactivada; no se registra ni se guarda nada. Como
cualquier llave generada fuera de tu propio equipo ha existido, por definición, en otro lugar, recomendamos esta
herramienta para desarrollo, pruebas, fixtures de CI y aprendizaje. Para accesos de producción de larga duración, ejecuta
ssh-keygen -t ed25519 en local.