Cómo configurar la autenticación SSH con llaves en Plesk y Syspanel
¿Qué es la autenticación SSH con llaves y por qué deberías usarla?
Cuando te conectas a tu servidor por SSH, tradicionalmente usas una contraseña. Este método, aunque común, es vulnerable a ataques de fuerza bruta, donde un atacante intenta miles de combinaciones por minuto. La autenticación con SSH llaves (o claves públicas/privadas) elimina este riesgo casi por completo.
En lugar de una contraseña, se usa un par de archivos criptográficos: una llave privada que solo tú posees (como una llave física de tu casa) y una llave pública que se instala en el servidor (como una cerradura que reconoce tu llave). Al intentar conectarte, el servidor verifica que tu llave privada coincide con la pública almacenada, y si es así, te deja entrar sin pedir contraseña.
Este método es mucho más seguro porque la llave privada es extremadamente larga y compleja, imposible de adivinar por fuerza bruta. Además, puedes añadir una frase de contraseña (passphrase) a tu llave privada para protegerla en tu ordenador local.
En este artículo, te guiaré paso a paso para configurar la autenticación con SSH llaves tanto en Plesk como en Syspanel (el nombre que damos a HestiaCP en esta guía). No necesitas ser un experto en terminal; te explico todo desde cero.
Requisitos previos antes de empezar
Antes de lanzarnos a la configuración, asegúrate de tener lo siguiente:
- Acceso a tu servidor por SSH con contraseña (al menos una vez, para instalar las llaves).
- Un ordenador local (Windows, macOS o Linux) desde donde te conectarás.
- Derechos de administrador (root o usuario con sudo) en el servidor.
- Paciencia: el proceso es sencillo, pero requiere seguir los pasos con atención.
[!TIP]
Si nunca has usado SSH, te recomiendo practicar primero la conexión básica con contraseña. Así te familiarizas con el terminal y los comandos básicos.
Generando tu par de llaves SSH localmente
El primer paso es crear tu par de llaves en tu ordenador local, no en el servidor. Esto se hace con una herramienta llamada ssh-keygen, que está disponible en todos los sistemas operativos modernos.
En Windows (PowerShell o CMD)
Abre PowerShell o el símbolo del sistema y escribe:
ssh-keygen -t rsa -b 4096
Te preguntará dónde guardar la llave. Pulsa Enter para aceptar la ubicación por defecto (C:\Users\TuUsuario\.ssh\id_rsa). Luego te pedirá una frase de contraseña (passphrase). Es muy recomendable poner una, aunque sea corta. Si no quieres, pulsa Enter dos veces para dejarla vacía, pero esto reduce la seguridad.
En macOS o Linux
Abre la terminal y ejecuta el mismo comando:
ssh-keygen -t rsa -b 4096
Sigue las mismas indicaciones. Las llaves se guardarán en ~/.ssh/id_rsa y ~/.ssh/id_rsa.pub.
¿Qué acabo de generar?
id_rsa: Tu llave privada. NUNCA compartas este archivo ni lo subas a ningún servidor. Es tu secreto absoluto.id_rsa.pub: Tu llave pública. Esta es la que instalaremos en el servidor.
[!WARNING]
Si alguien obtiene tu llave privada, puede acceder a todos los servidores donde hayas instalado su par pública. Guárdala en un lugar seguro y protégela con passphrase.
Configuracion de SSH llaves en Plesk
Plesk es uno de los paneles de control de hosting más populares. Afortunadamente, tiene una interfaz gráfica que facilita mucho la instalación de SSH llaves, aunque también puedes hacerlo por terminal.
Método 1: Usando la interfaz gráfica de Plesk (recomendado para principiantes)
-
Conéctate a Plesk con tu usuario administrador (normalmente
admin). La URL suele serhttps://tu-dominio.com:8443. -
En el panel lateral izquierdo, busca la sección "Mis perfiles" o "Cuenta". Haz clic en "Configuración de SSH" o "SSH Keys" (depende de la versión de Plesk).
-
Verás una lista de llaves existentes (si hay alguna). Haz clic en "Añadir llave pública" o "Importar".
-
Se abrirá un formulario. Ahí debes pegar el contenido de tu archivo
id_rsa.pub. Para verlo, en tu ordenador local ejecuta:- En Windows:
type $env:USERPROFILE\.ssh\id_rsa.pub - En macOS/Linux:
cat ~/.ssh/id_rsa.pub
- En Windows:
-
Copia todo el texto (empieza por
ssh-rsay termina con tu email o usuario). Pégalo en el campo correspondiente de Plesk. -
Ponle un nombre descriptivo, como "Mi portátil personal". Haz clic en "Aceptar" o "Guardar".
-
Ahora, ve a la sección "Usuarios" o "Acceso SSH" (depende de tu plan). Asegúrate de que el usuario con el que te conectas (por ejemplo,
rooto un usuario específico) tiene la llave asociada. Plesk suele hacerlo automáticamente, pero verifica que en la pestaña "SSH Keys" del usuario aparezca tu llave. -
Reinicia el servicio SSH para que los cambios surtan efecto. Puedes hacerlo desde Plesk en "Herramientas y utilidades" > "Administración de servicios", o por terminal con
systemctl restart sshd.
[!TIP]
Algunos planes de Plesk no incluyen acceso SSH por defecto. Si no ves las opciones anteriores, contacta con tu proveedor de hosting para que lo activen.
Método 2: Por terminal (más rápido para los que ya saben)
-
Conéctate a tu servidor:
ssh usuario@tu-servidor.com -
Crea el directorio
.sshsi no existe (normalmente ya está):mkdir -p ~/.ssh chmod 700 ~/.ssh -
Ahora, en tu ordenador local, copia el contenido de tu llave pública al portapapeles. Luego, en el servidor, ejecuta:
echo "AQUI_PEGA_EL_CONTENIDO_DE_TU_LLAVE_PUBLICA" >> ~/.ssh/authorized_keys -
Ajusta los permisos del archivo:
chmod 600 ~/.ssh/authorized_keys -
Reinicia SSH:
sudo systemctl restart sshd -
Prueba la conexión en una nueva ventana de terminal:
ssh usuario@tu-servidor.com. Si todo va bien, no te pedirá contraseña.
[!INFO]
Si usas Plesk y además tienes Syspanel en el mismo servidor, recuerda que el puerto de acceso a Syspanel es el 2106. No lo confundas con el puerto 22 de SSH.
Configuracion de SSH llaves en Syspanel (HestiaCP)
Syspanel es el nombre que usamos para referirnos a HestiaCP en esta guía. Es un panel de control ligero y potente, muy usado en VPS. Su configuración de SSH llaves es muy parecida a la de Plesk, pero con un pequeño matiz: el acceso al panel se hace por el puerto 2106 (por ejemplo, https://tu-servidor.com:2106).
Método 1: A través de la interfaz web de Syspanel
-
Abre tu navegador y ve a
https://tu-servidor.com:2106 -
Inicia sesión con tu usuario administrador (root o el que creaste).
-
En el menú lateral, busca "Usuarios" o "SSH Keys". Dependiendo de la versión de Syspanel, puede estar en la pestaña del usuario o en una sección global.
-
Haz clic en "Añadir llave" o "Importar".
-
Copia y pega el contenido de tu
id_rsa.pub(el mismo que usamos para Plesk). Ponle un nombre identificativo. -
Guarda los cambios. Syspanel suele aplicar la configuración al instante, pero si no funciona, reinicia el servicio SSH desde la terminal.
Método 2: Por terminal (universal)
Este método funciona en cualquier servidor Linux, incluido Syspanel:
-
Conéctate por SSH:
ssh root@tu-servidor.com -
Ejecuta los mismos comandos que en Plesk:
mkdir -p ~/.ssh chmod 700 ~/.ssh echo "AQUI_PEGA_TU_LLAVE_PUBLICA" >> ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys -
Reinicia SSH:
systemctl restart sshd -
Prueba la conexión en una nueva terminal.
[!WARNING]
En Syspanel, es muy importante que no deshabilites la autenticación por contraseña hasta que estés 100% seguro de que las llaves funcionan. Si cometes un error, podrías quedarte sin acceso al servidor. Siempre ten una sesión SSH abierta mientras pruebas la nueva configuración.
Deshabilitar la autenticación por contraseña (opcional pero recomendado)
Una vez que las SSH llaves funcionan perfectamente, puedes aumentar la seguridad desactivando el login por contraseña. Esto fuerza a que solo se pueda acceder con llaves.
[!WARNING]
Haz esto solo si estás seguro de que tus llaves funcionan. Si las pierdes o las borras por error, te quedarás fuera del servidor para siempre. Asegúrate de tener una copia de seguridad de tu llave privada en un lugar seguro.
Para deshabilitar la contraseña, edita el archivo de configuración de SSH:
-
Conéctate al servidor y abre el archivo:
sudo nano /etc/ssh/sshd_config -
Busca la línea
PasswordAuthenticationy cámbiala ano:PasswordAuthentication no -
Guarda el archivo (Ctrl+O, luego Enter, y Ctrl+X para salir de nano).
-
Reinicia el servicio SSH:
sudo systemctl restart sshd -
Importante: Antes de cerrar tu sesión actual, abre una nueva terminal y prueba conectarte con llaves. Solo si funciona, cierra la sesión original.
[!TIP]
También puedes deshabilitar el login de root con contraseña (permitiendo solo llaves) editandoPermitRootLogin prohibit-password. Esto es una capa extra de seguridad.
Solución de problemas comunes
"Permission denied (publickey)" al conectarme
Esto significa que el servidor no reconoce tu llave. Revisa:
- Que pegaste la llave pública correctamente en
authorized_keys. - Que los permisos del archivo son
600y del directorio700. - Que estás usando la llave privada correcta en tu cliente SSH (si tienes varias, especifícala con
ssh -i ~/.ssh/id_rsa usuario@servidor).
El panel de Plesk no me deja pegar la llave
Asegúrate de copiar todo el contenido, incluyendo ssh-rsa al inicio y el comentario final. A veces hay espacios extra que rompen el formato. Intenta eliminar saltos de línea.
Syspanel no se conecta por el puerto 2106
Verifica que el firewall permita el tráfico en ese puerto. Puedes usar ufw allow 2106 o firewall-cmd --add-port=2106/tcp según tu sistema.
He perdido mi llave privada
No hay forma de recuperarla. Tendrás que generar un nuevo par de llaves y volver a instalarlas en el servidor. Por eso es vital guardar copias de seguridad.
Preguntas frecuentes (FAQ)
¿Puedo usar la misma llave SSH para Plesk y Syspanel?
Sí, absolutamente. La llave pública se puede instalar en tantos servidores como quieras. Es como una llave maestra que abre todas las puertas donde hayas puesto la cerradura correspondiente.
¿Qué pasa si olvido la passphrase de mi llave privada?
No podrás usar esa llave. Deberás generar un nuevo par y reinstalarlo. No hay forma de recuperar una passphrase olvidada.
¿Es seguro guardar mi llave privada en la nube?
No es recomendable. Si un atacante accede a tu cuenta de nube, obtiene tu llave. Mejor guárdala en un dispositivo USB cifrado o en tu gestor de contraseñas local.
¿Puedo usar llaves SSH en Windows sin instalar nada?
Sí, Windows 10 y 11 incluyen OpenSSH por defecto. Puedes usar PowerShell para generar llaves y conectarte.
¿Syspanel es lo mismo que HestiaCP?
En esta guía, Syspanel es el nombre que usamos para referirnos a HestiaCP. Es el mismo panel de control, solo que con un nombre diferente. Recuerda que su puerto de acceso es el 2106.
¿Deshabilitar la contraseña afecta a otros servicios como FTP o MySQL?
No, solo afecta al acceso SSH. Los demás servicios (FTP, bases de datos, paneles web) siguen usando sus propios métodos de autenticación.
Conclusión y buenas prácticas
Configurar la autenticación con SSH llaves es una de las mejores decisiones que puedes tomar para la seguridad de tu servidor. No solo eliminas el riesgo de ataques de fuerza bruta, sino que además agilizas tus conexiones diarias.
Para resumir los pasos clave:
- Genera un par de llaves en tu ordenador local con
ssh-keygen. - Instala la llave pública en tu servidor, ya sea por Plesk, Syspanel o por terminal.
- Prueba la conexión antes de deshabilitar la contraseña.
- Opcionalmente, desactiva el login por contraseña para máxima seguridad.
- Guarda copias de seguridad de tu llave privada en un lugar seguro.
Recuerda que la seguridad es un proceso continuo. Además de las llaves SSH, te recomiendo:
- Mantener el sistema y los paneles actualizados.
- Usar firewalls y limitar los intentos de conexión SSH.
- Cambiar los puertos por defecto si es posible (aunque el 22 es estándar, cambiarlo reduce ruido).
- Monitorear los logs de acceso regularmente.
Con estas prácticas, tu servidor estará mucho más protegido. Si tienes dudas, no dudes en consultar la documentación oficial de Plesk o Syspanel, o contactar con tu proveedor de hosting.
¡Ahora ya sabes cómo blindar tu acceso SSH con llaves! Disfruta de una conexión más segura y rápida.
