Una contraseña es un único secreto. Quien la tiene puede entrar, y puede adivinarse, obtenerse por phishing, reutilizarse de una filtración en otro sitio o descubrirse por fuerza bruta con suficientes intentos. Un par de claves SSH funciona de otra manera, y esa diferencia es la razón de que las claves sean la forma recomendada de acceder a un servidor, y no solo una alternativa más técnica.
Cómo funcionan las claves SSH
Un par de claves tiene dos mitades: una clave privada que nunca sale de tu ordenador y una clave pública que subes al servidor. Al conectarte, el servidor envía un desafío criptográfico que solo puede responder la clave privada correspondiente. Tu clave privada nunca viaja por la red, así que un atacante no tiene nada que interceptar, ni siquiera en una conexión comprometida.
Por qué supera a una contraseña
- Nada que adivinar ni forzar. Una contraseña es una cadena que un atacante puede intentar adivinar. Una clave moderna es una prueba criptográfica que sencillamente no tiene.
- No se puede reutilizar de una filtración. Las contraseñas se reutilizan entre sitios y se filtran en brechas sin relación. Un par de claves se genera de nuevo y no está ligado a nada más que uses.
- Revocar es inmediato y limpio. Quitar una clave pública del servidor corta ese acceso al instante, sin cambiar una contraseña que otras personas o herramientas también usan.
- La clave privada puede tener una frase de contraseña. Si el archivo de la clave se copia fuera de tu equipo, sigue siendo inservible sin esa frase, una segunda capa que una contraseña simple no tiene.
- Resiste los ataques de acceso que sufren los sitios WordPress. Los intentos constantes que describe la guía de fuerza bruta no sirven de nada contra un servicio que solo acepta claves.
Cómo pasar al acceso con clave
1. Crea un par de claves. En macOS, Linux o Windows 10 y posteriores (PowerShell), ejecuta:
ssh-keygen -t ed25519 -C "mi-portatil"
Acepta la ubicación por defecto y establece una frase de contraseña cuando se pida. Esto crea una clave privada (id_ed25519) y una clave pública (id_ed25519.pub). No compartas ni subas nunca la privada. En un Windows más antiguo, PuTTYgen hace el mismo trabajo.
2. Añade la clave pública a tu hosting. En cPanel, abre Acceso SSH, luego Administrar claves SSH, elige Importar clave y pega el texto de la clave pública. Tras importarla, pulsa Administrar junto a ella y Autorizar. Otros hostings tienen una sección «Claves SSH» o «Acceso SSH» que funciona igual. En un VPS, en cambio, añades la línea a ~/.ssh/authorized_keys.
3. Pruébala. Conéctate con ssh -i ~/.ssh/id_ed25519 usuario@tuservidor, añadiendo -p y el puerto si tu hosting usa uno no estándar. Asegúrate de que la clave funciona antes de cambiar nada más, para no quedarte fuera.
4. Después, desactiva el acceso por contraseña si controlas el servidor. En un VPS, pon PasswordAuthentication no en la configuración del servidor SSH y recárgala. En un hosting compartido normalmente no puedes cambiarlo, así que confía en la clave más una contraseña de cuenta robusta y única.
Buenos hábitos con las claves
- Usa una clave por dispositivo y por finalidad. Una clave distinta para cada portátil y cada servicio limita el daño si una se pierde y permite revocar una sin romper las demás.
- Mantén una frase de contraseña en cada clave privada, y usa un agente SSH para escribirla una sola vez por sesión.
- Etiqueta las claves con claridad para saber dentro de un año a qué herramienta o persona pertenece cada una.
- Elimina las claves que ya no uses. Revisa la lista autorizada cuando alguien se va o se retira un portátil.
- Guarda una copia segura de la clave privada, o prepárate para generar una nueva. Si la pierdes, la sustituyes; en el servidor no cambia nada salvo la lista autorizada.
¿Y si mi hosting no tiene SSH?
La mayoría de los hostings compartidos, VPS y WordPress gestionados admiten SSH, aunque algunos planes compartidos económicos lo restringen. Si el tuyo lo hace, SFTP con una contraseña robusta y única, idealmente con acceso de dos factores en la cuenta de hosting, es la mejor opción siguiente. Consulta la guía de instalación para ver cómo es el acceso SSH según el tipo de hosting.
SiftWP se conecta de la misma manera: con una clave SSH dedicada, creada solo para él e importada a través del panel de control de tu hosting. Nunca ve la contraseña de administrador de WordPress ni la contraseña principal de tu cuenta de hosting. La clave da acceso de shell a esa única cuenta, nunca a controles de todo el servidor, y puedes revocarla en cualquier momento borrando esa clave en cPanel.