Configurar claves SSH lleva unos cinco minutos y reemplaza la contraseña de tu servidor por un par de claves criptográficas mucho más difícil de vulnerar: generas el par en tu propia máquina, copias la mitad pública al servidor y luego desactivas el inicio de sesión con contraseña. La versión corta son tres comandos — ssh-keygen -t ed25519, ssh-copy-id user@your-server y, después, un cambio de una sola línea para desactivar la autenticación por contraseña. Esta guía recorre cada paso para un VPS Linux, explica qué tipo de clave elegir en 2026 y cubre el paso de fortalecimiento que la mayoría de los tutoriales omite.
Si alguna vez has tecleado una contraseña cada vez que te conectas por SSH a una máquina, las claves eliminan esa fricción y el riesgo de seguridad que conlleva. Una clave es, en la práctica, una contraseña imposible de adivinar de miles de caracteres de longitud que nunca viaja al servidor, así que los ataques de fuerza bruta contra tu inicio de sesión dejan de funcionar.
Qué son las claves SSH y por qué superan a las contraseñas
Un par de claves SSH son dos archivos que se corresponden entre sí: una clave privada que permanece en tu ordenador y una clave pública que colocas en cualquier servidor al que quieras acceder. Cuando te conectas, el servidor reta a tu máquina a demostrar que posee la clave privada, y esa prueba ocurre sin que el secreto llegue a salir de tu portátil. Como la clave privada es enorme comparada con una contraseña humana y nunca viaja al servidor, OpenSSH admite la autenticación por clave pública como un método de inicio de sesión más robusto que una contraseña reutilizable.
Las ventajas prácticas son inmediatas. Dejas de enviar una contraseña reutilizable a través de la red, así que los bots de relleno de credenciales y de fuerza bruta que aporrean el port 22 no consiguen nada. Puedes iniciar sesión sin teclear nada, lo que hace que los scripts y los despliegues sean indoloros. Y una vez que las claves funcionan, puedes desactivar por completo el inicio de sesión con contraseña — la mayor reducción de superficie de ataque que recibe un servidor nuevo, y la razón por la que las claves son el paso número uno en cualquier configuración segura de la primera hora de un VPS.
¿Qué tipo de clave SSH deberías usar en 2026?
No todos los algoritmos de clave son iguales. ssh-keygen puede producir varios tipos, pero en 2026 la elección es sencilla para casi todo el mundo: usa Ed25519. Es rápido, genera claves cortas y su seguridad es excelente; además es el valor predeterminado moderno que GitHub y la mayoría de las plataformas recomiendan ahora.
| Tipo de clave | Opción del comando | Notas |
|---|---|---|
| Ed25519 | -t ed25519 | Recomendado. Rápido, diminuto, moderno y ampliamente compatible. |
| RSA 4096 | -t rsa -b 4096 | Úsalo solo en sistemas antiguos que no admiten Ed25519. |
| ECDSA | -t ecdsa | Funciona, pero no hay motivo para elegirlo antes que Ed25519. |
| DSA | -t dsa | Obsoleto y deshabilitado en OpenSSH moderno — nunca lo uses. |
La única excepción es un servidor o dispositivo heredado demasiado antiguo para entender Ed25519, donde RSA a 4096 bits es la alternativa segura. Para un VPS Linux normal que ejecute una versión actual de OpenSSH, Ed25519 es la respuesta correcta y el resto de esta guía lo da por supuesto.
Cómo configurar claves SSH paso a paso
Tres pasos: generar el par, copiar la clave pública al servidor y luego conectarte.
1. Genera el par de claves en tu máquina local (no en el servidor):
ssh-keygen -t ed25519 -C "you@yourmachine"
Pulsa Enter para aceptar la ubicación predeterminada (~/.ssh/id_ed25519) y establece una frase de contraseña cuando se te pida — una frase de contraseña cifra la clave privada en el disco, de modo que un portátil robado no entregue tus servidores. Esto crea dos archivos: id_ed25519 (privado, mantenlo en secreto) e id_ed25519.pub (público, se puede compartir).
2. Copia la clave pública al servidor con la utilidad que gestiona los permisos por ti:
ssh-copy-id user@your-server-ip
Inicia sesión una vez con tu contraseña y añade tu clave pública a ~/.ssh/authorized_keys en el servidor. ¿No tienes ssh-copy-id (algo habitual en Windows/macOS)? Hazlo manualmente — pega el contenido de tu archivo .pub en ese fichero y asegúrate de que el directorio tenga permisos 700 y el archivo 600, o SSH se negará a usarlo.
3. Conéctate. Ejecuta ssh user@your-server-ip y entrarás sin que se te pida contraseña (solo tu frase de contraseña local, si estableciste una). Prueba esto en una terminal nueva antes de continuar — debes confirmar que el inicio de sesión con clave funciona antes de desactivar las contraseñas.
Blíndalo: desactiva el inicio de sesión con contraseña
Este es el paso que convierte el «las claves funcionan» en «el servidor es realmente más seguro», y es el que la mayoría de las guías se saltan. Mientras la autenticación por contraseña siga habilitada, los bots pueden seguir intentando adivinar tu contraseña, tengas claves o no. Una vez que hayas confirmado que el inicio de sesión con clave funciona, edita la configuración del demonio SSH en el servidor, en /etc/ssh/sshd_config:
PasswordAuthentication no
PubkeyAuthentication yes
Luego recarga el servicio — sudo systemctl restart ssh en Debian/Ubuntu (sshd en algunas distribuciones). A partir de ahora el servidor acepta únicamente claves, y la fuerza bruta de contraseñas contra él se vuelve imposible. El manual sshd_config de OpenSSH documenta ambas directivas. Mantén abierta tu sesión actual mientras pruebas un nuevo inicio de sesión, para poder deshacer el cambio si algo va mal. Esto encaja de forma natural con el fortalecimiento más amplio de un tutorial completo de autoalojamiento en un VPS.
Gestionar claves: ssh-agent y elegir una clave concreta
Una vez que tienes una clave, dos pequeñas herramientas hacen más cómodo el uso diario. El ssh-agent mantiene tu clave privada descifrada en memoria, de modo que tecleas la frase de contraseña una vez por sesión en lugar de en cada conexión. Iníciate y añade tu clave:
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
Si tienes varias claves y necesitas forzar una en particular — una duda frecuente — apunta SSH directamente a ella con ssh -i ~/.ssh/id_ed25519 user@host, o hazlo permanente en ~/.ssh/config:
Host myserver
HostName 203.0.113.10
User deploy
IdentityFile ~/.ssh/id_ed25519
Ahora ssh myserver usa la clave y el usuario correctos automáticamente. Un archivo de configuración merece la pena en cuanto gestionas más de un servidor; también es la forma más limpia de evitar que las claves del trabajo y las personales choquen entre sí. Haz copia de seguridad de estos archivos igual que harías con cualquier dato crítico — consulta nuestra guía de copias de seguridad 3-2-1 para una configuración que de verdad restaura.
Notas sobre Windows y macOS
Las versiones modernas de Windows 10/11 y macOS incluyen OpenSSH de serie, así que ssh-keygen -t ed25519 funciona igual en PowerShell o Terminal. En Windows, las claves se guardan en C:\Users\you\.ssh\ y puedes iniciar el agente con Start-Service ssh-agent antes de ejecutar ssh-add. Como ssh-copy-id no existe en Windows, copia la clave pública manualmente con type $env:USERPROFILE\.ssh\id_ed25519.pub | ssh user@host "cat >> ~/.ssh/authorized_keys". Todo lo demás — el archivo de configuración, desactivar las contraseñas en el servidor — es idéntico.
Preguntas frecuentes
¿Cómo uso claves SSH en lugar de una contraseña?
Genera un par de claves con ssh-keygen -t ed25519, copia la clave pública al servidor con ssh-copy-id user@host y luego confirma que puedes iniciar sesión sin contraseña. Para reemplazar por completo las contraseñas, establece PasswordAuthentication no en el archivo /etc/ssh/sshd_config del servidor y reinicia SSH.
¿Qué tipo de clave SSH debería usar?
Ed25519. Es el valor predeterminado moderno: rápido, compacto y seguro. Recurre a RSA 4096 (ssh-keygen -t rsa -b 4096) solo en sistemas heredados que no admitan Ed25519. Evita DSA y ECDSA.
¿Cómo configuro authorized_keys?
ssh-copy-id lo hace por ti al añadir tu clave pública a ~/.ssh/authorized_keys en el servidor. Para hacerlo a mano, pega el contenido de tu archivo .pub en ese fichero, una clave por línea, y establece los permisos en 700 para el directorio ~/.ssh y 600 para el archivo.
¿Cómo obligo a SSH a usar una clave concreta?
Usa ssh -i ~/.ssh/keyname user@host para un uso puntual, o añade una línea IdentityFile bajo una entrada Host en ~/.ssh/config para hacerlo permanente en ese servidor.
¿Son las claves SSH más seguras que una VPN?
Resuelven problemas distintos. Las claves SSH autentican tu inicio de sesión en un servidor al que se puede acceder por la red; una VPN o un túnel controla quién puede llegar a él siquiera. Para blindar un VPS público, usa SSH solo con claves; para mantener un servicio privado, añade un túnel por encima.
Sources
- OpenSSH — manual de ssh(1): descripción autorizada de la autenticación por clave pública y de cómo funciona el intercambio de claves.
- OpenSSH — manual de sshd_config(5): referencia oficial de
PasswordAuthenticationyPubkeyAuthentication. - OpenSSH — manual de ssh-keygen(1): opciones oficiales de generación de claves y algoritmos admitidos.
- GitHub Docs — Generar una nueva clave SSH y añadirla al ssh-agent: orientación actual que recomienda Ed25519 y el uso de ssh-agent.
Waqas Ahmed Waseer
Waqas Ahmed Waseer es desarrollador y creador de automatizaciones con más de 8 años construyendo sistemas en producción que usan más de 100.000 personas. Crea SaaS multiinquilino a medida, automatización con IA (n8n, flujos LLM, bots de WhatsApp) e infraestructura de hosting (WHM/cPanel, CloudLinux), y es el creador de WaSphere, FlowMaticX y la marca de hosting WaseerHost. Más de 100 proyectos entregados para pymes, agencias y startups financiadas.


