Articulo de ayuda
Cómo Crear y Usar Claves SSH para tu Servidor
Crea y usa claves SSH (ed25519, RSA) para conectarte a tu VPS sin contraseña: generar, copiar, configurar y desactivar el acceso por contraseña.
Introducción
Las claves SSH son el método más seguro para acceder a un servidor. A diferencia de las contraseñas, no se pueden adivinar con ataques de fuerza bruta, y además te permiten conectarte sin escribir la contraseña cada vez.
Si vas a gestionar un VPS, configurar claves SSH es lo primero que deberías hacer. En este artículo vas a ver cómo crearlas, copiarlas al servidor y desactivar el acceso por contraseña.
Qué es una clave SSH
Una clave SSH está formada por dos archivos que funcionan como un candado y su llave:
- Clave privada: se queda en tu ordenador. Es la llave. No la compartas nunca con nadie.
- Clave pública: se copia al servidor. Es el candado. Se puede compartir sin problema.
Cuando te conectas, tu ordenador demuestra que tiene la llave privada que corresponde al candado público del servidor. Si coinciden, entras. Si no, se rechaza la conexión.
[Imagen sugerida: esquema de cómo funcionan la clave pública y la clave privada]
A diferencia de una contraseña, la clave privada nunca viaja por la red. Por eso es imposible interceptarla, por mucho que alguien escuche tu conexión.
Paso 1: Crear la clave SSH en tu ordenador
Abre el terminal en tu ordenador (no en el servidor):
- Windows: PowerShell o Símbolo del sistema.
- Linux/Mac: Terminal.
Genera una clave con el algoritmo ed25519 (el más moderno y recomendado):
ssh-keygen -t ed25519
Si tu sistema es muy antiguo y no soporta ed25519, usa RSA:
ssh-keygen -t rsa -b 4096
Te hará tres preguntas:
- Dónde guardarla: pulsa Enter para dejarla en el sitio por defecto (
~/.ssh/id_ed25519). - Contraseña (passphrase) opcional: una contraseña extra que protege la clave. Recomendada pero opcional. Si la pones, te la pedirá cada vez que uses la clave.
- Confirmar la contraseña: repítela.
Se crean dos archivos:
~/.ssh/id_ed25519→ clave privada (no la compartas).~/.ssh/id_ed25519.pub→ clave pública (la que copias al servidor).
Paso 2: Copiar la clave pública al servidor
La forma más sencilla es con ssh-copy-id:
ssh-copy-id root@tu-ip-del-servidor
Te pedirá la contraseña del servidor una última vez. A partir de ese momento, la clave está copiada.
Si tu sistema no tiene
ssh-copy-id(como algunas versiones de Windows), puedes hacerlo manualmente:
type ~/.ssh/id_ed25519.pub | ssh root@tu-ip-del-servidor "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
Paso 3: Comprobar que la clave funciona
Conéctate al servidor:
ssh root@tu-ip-del-servidor
Si configuraste una passphrase para la clave, te la pedirá. Si no, debería entrar sin pedir contraseña del servidor. Si es así, la clave SSH está funcionando.
No sigas al paso 4 hasta confirmar que la clave funciona. Si desactivas la contraseña sin haber confirmado la clave, te quedarás fuera.
Paso 4: Desactivar el acceso por contraseña
Una vez confirmado que la clave funciona, desactiva el acceso por contraseña para máxima seguridad.
En el servidor, edita la configuración de SSH:
nano /etc/ssh/sshd_config
Busca y cambia estas líneas:
PasswordAuthentication no
PubkeyAuthentication yes
PermitRootLogin prohibit-password
- PasswordAuthentication no: desactiva el acceso por contraseña.
- PubkeyAuthentication yes: activa el acceso por clave.
- PermitRootLogin prohibit-password: permite root solo con clave, no con contraseña.
Guarda y reinicia SSH:
systemctl restart ssh
[Imagen sugerida: captura del archivo sshd_config con las opciones correctas]
Cómo gestionar varias claves o servidores
Varios servidores, un solo ordenador
Tu ordenador puede tener varias claves y conectarse a varios servidores. Para no escribir la IP y el puerto cada vez, crea un archivo de configuración:
nano ~/.ssh/config
Host miservidor
HostName 192.168.1.100
User root
Port 2222
IdentityFile ~/.ssh/id_ed25519
A partir de entonces, conecta con:
ssh miservidor
Varios usuarios autorizados
Si quieres que varias personas accedan al mismo servidor, copia la clave pública de cada una al archivo ~/.ssh/authorized_keys del servidor. Cada línea es una clave.
Consejos útiles
- Usa ed25519, no RSA. Es más seguro y más corto.
- Protege la clave privada con una passphrase. Si alguien roba tu ordenador, no podrá usar la clave sin la passphrase.
- Guarda un backup de tu clave privada. Si la pierdes, tendrás que generar una nueva.
- No compartas nunca la clave privada. La pública sí se puede compartir; la privada, jamás.
- Revoca claves antiguas. Si alguien deja de necesitar acceso, borra su clave del
authorized_keys.
Problemas frecuentes
Me sigue pidiendo la contraseña del servidor
La clave pública no está bien copiada o los permisos son incorrectos. En el servidor, comprueba:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
Y verifica que la clave pública está en ~/.ssh/authorized_keys (puedes verla con cat ~/.ssh/authorized_keys).
Permission denied (publickey)
Después de desactivar la contraseña, este error significa que la clave no se reconoce. Comprueba que copiaste la clave correcta y que los permisos de .ssh son los adecuados.
He perdido mi clave privada
Tendrás que acceder por consola de recuperación (si tu proveedor la ofrece) o pedir a soporte que te la restablezca. Una vez dentro, copia una nueva clave.
Quiero usar la misma clave en dos ordenadores
Copia los dos archivos (id_ed25519 e id_ed25519.pub) al segundo ordenador, en la carpeta ~/.ssh/. Pon los permisos correctos:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/id_ed25519
La passphrase me molesta
Puedes quitarla, pero es menos seguro. Si la quitas, cualquiera que acceda a tu ordenador podrá entrar al servidor. Mejor usa un agente SSH (ssh-agent) que recuerde la passphrase durante la sesión.
Preguntas frecuentes
¿Las claves SSH son más seguras que las contraseñas?
Sí, mucho más. Una clave de 256 bits (ed25519) es matemáticamente imposible de adivinar, mientras que una contraseña sí se puede adivinar con fuerza bruta.
¿Necesito una clave distinta para cada servidor?
No es obligatorio, pero es recomendable. Así, si una clave se compromete, no afecta a todos tus servidores.
¿La passphrase de la clave es obligatoria?
No, pero muy recomendable. Protege la clave privada si alguien accede a tu ordenador.
¿Puedo usar la misma clave en Windows, Linux y Mac?
Sí. La clave privada es un archivo de texto que puedes copiar entre sistemas. Solo asegúrate de poner los permisos correctos.
¿Qué pasa si alguien roba mi clave privada?
Si tiene passphrase, no podrá usarla sin adivinarla. Si no tiene passphrase, podrá entrar a tu servidor. Genera una clave nueva y borra la comprometida del authorized_keys del servidor.
Acceso seguro, sin contraseñas
Las claves SSH son el estándar de seguridad para acceder a servidores. Una vez configuradas, te conectas con un comando, sin contraseñas, y con un nivel de seguridad imposible de conseguir con contraseñas.
Si tienes un VPS administrado de miHosting, nosotros configuramos y gestionamos las claves SSH por ti. Si tienes un VPS autogestionado, esta guía te sirve para proteger tu servidor desde el primer día. Abre un ticket desde tu panel de cliente si necesitas ayuda.