Configurar autenticación SSH con claves públicas en Syspanel
¿Qué es la autenticación SSH con claves públicas y por qué te interesa?
Cuando hablamos de seguridad ssh syspanel, la primera recomendación que te vamos a dar es que dejes de usar contraseñas para acceder a tu servidor. La autenticación con ssh claves públicas syspanel es, sin duda, el método más seguro y recomendado por cualquier administrador de sistemas.
¿Por qué? Muy sencillo: una contraseña, por muy larga que sea, puede ser adivinada, interceptada o robada mediante ataques de fuerza bruta. En cambio, una clave pública es un archivo matemáticamente imposible de adivinar, y su clave privada asociada nunca viaja por la red, por lo que no puede ser interceptada.
En este artículo, te voy a explicar paso a paso cómo configurar este sistema en Syspanel, nuestro panel de control que gestiona tu servidor de forma visual y sencilla. No necesitas ser un experto en terminales, solo seguir las instrucciones con calma.
¿Qué necesitas antes de empezar?
Antes de ponernos manos a la obra, asegúrate de tener lo siguiente:
- Acceso a tu servidor con usuario root o un usuario con permisos sudo.
- Una terminal (en Windows puedes usar PowerShell o Git Bash, en Mac o Linux la terminal nativa).
- Tener claro que vamos a trabajar con Syspanel, que como ya sabes, se accede por el puerto 2106 para la gestión web, pero la conexión SSH seguirá usando el puerto estándar (22) salvo que lo hayas cambiado.
[INFO]: Si no sabes qué es una clave pública y una privada, imagina que la clave pública es una cerradura que puedes copiar y pegar en muchos sitios, y la clave privada es la llave única que abre esa cerradura. La llave nunca debe salir de tu ordenador personal.
Paso 1: Generar tu par de claves SSH
Lo primero es generar nuestro par de claves en nuestro ordenador local. Este proceso creará dos archivos: uno privado (que no debes compartir jamás) y uno público (que subiremos al servidor).
En Linux o macOS
Abre tu terminal y escribe el siguiente comando:
ssh-keygen -t ed25519 -C "tu_correo@ejemplo.com"
Te preguntará dónde guardar el archivo. Pulsa Enter para aceptar la ubicación por defecto (~/.ssh/id_ed25519). Después te pedirá una frase de contraseña (passphrase). No la dejes vacía, es una capa extra de seguridad. Si alguien roba tu clave privada, sin la frase no podrá usarla.
En Windows
Si usas PowerShell o Git Bash, el proceso es idéntico. Solo asegúrate de que el comando ssh-keygen esté disponible (si instalaste Git, lo estará).
[TIP]: La opción
-t ed25519usa el algoritmo más moderno y seguro. Si tu servidor es antiguo y no lo soporta, puedes usar-t rsa -b 4096para claves RSA de 4096 bits.
Paso 2: Copiar la clave pública a tu servidor
Ahora tenemos la clave pública generada. Vamos a copiarla a nuestro servidor. Hay dos métodos: el automático y el manual.
Método automático (recomendado)
En tu terminal local, ejecuta:
ssh-copy-id usuario@IP_DE_TU_SERVIDOR
Te pedirá la contraseña del usuario en el servidor (la de SSH, no la de Syspanel). Después de introducirla, la clave pública se añadirá automáticamente al archivo ~/.ssh/authorized_keys del servidor.
[WARNING]: Este comando funciona en Linux y macOS. En Windows, si no tienes
ssh-copy-id, puedes usar el siguiente método manual.
Método manual
Primero, muestra tu clave pública con:
cat ~/.ssh/id_ed25519.pub
Copia todo el texto que aparece (empieza por ssh-ed25519 o ssh-rsa).
Ahora conéctate a tu servidor:
ssh usuario@IP_DE_TU_SERVIDOR
Una vez dentro, ejecuta:
mkdir -p ~/.ssh
chmod 700 ~/.ssh
echo "AQUI_PEGA_TU_CLAVE_PUBLICA" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
Reemplaza AQUI_PEGA_TU_CLAVE_PUBLICA por el texto que copiaste antes. Listo, ya tienes la clave instalada.
Paso 3: Probar la conexión con clave
Sal de la sesión actual con exit y vuelve a conectarte, pero ahora sin contraseña:
ssh usuario@IP_DE_TU_SERVIDOR
Si todo ha ido bien, no te pedirá contraseña. Si configuraste una passphrase al generar la clave, te la pedirá a ti (en tu ordenador local), pero eso es normal y seguro.
[INFO]: Si te pide contraseña y estás seguro de que copiaste bien la clave, revisa los permisos de los archivos en el servidor. El directorio
.sshdebe tener permisos700y el archivoauthorized_keysdebe tener600. Si no, ejecuta los comandoschmoddel paso anterior.
Paso 4: Configurar Syspanel para usar claves SSH
Ahora vamos a integrar esto con Syspanel. Recuerda que Syspanel es el panel de control que tienes instalado en tu servidor y que gestionas desde el navegador en el puerto 2106.
Acceder a la gestión de SSH en Syspanel
- Abre tu navegador y ve a
http://IP_DE_TU_SERVIDOR:2106. - Inicia sesión con tu usuario administrador de Syspanel.
- Busca la sección de "Herramientas" o "Avanzado" (dependiendo de la versión, puede variar). Normalmente hay un apartado llamado "Claves SSH" o "SSH Keys".
- Dentro, verás una lista de usuarios del sistema. Selecciona el usuario al que quieres añadir la clave (por ejemplo,
admino el usuario que uses habitualmente). - Pega tu clave pública en el campo correspondiente y guarda los cambios.
[TIP]: En Syspanel, también puedes generar claves desde el propio panel, pero te recomiendo que las generes en tu ordenador y subas la pública. Así mantienes la privada siempre contigo.
Usuarios y permisos
Es muy importante que entiendas qué usuario estás configurando. Si configuras la clave para root, podrás acceder directamente como superusuario. Si la configuras para un usuario normal, tendrás que hacer sudo su después de conectar.
Paso 5: Desactivar la autenticación por contraseña
Una vez que has comprobado que la conexión con clave funciona perfectamente, es hora de endurecer la seguridad. Vamos a desactivar el acceso por contraseña para que solo se pueda entrar con clave.
Editar el archivo de configuración de SSH
Conéctate a tu servidor y abre el archivo de configuración:
sudo nano /etc/ssh/sshd_config
Busca las siguientes líneas y modifícalas así:
PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM no
Si alguna de ellas está comentada (empieza por #), quítale la #. Guárda el archivo (en nano, Ctrl+O, luego Enter, y Ctrl+X para salir).
Reiniciar el servicio SSH
Ahora reinicia el servicio para aplicar los cambios:
sudo systemctl restart sshd
[WARNING]: No cierres la sesión actual hasta haber probado que puedes entrar con clave. Si algo falla, podrías quedarte fuera de tu servidor. Abre una segunda terminal y prueba a conectar. Si funciona, entonces ya puedes cerrar la sesión original.
Paso 6: Verificar la configuración final
Para asegurarte de que todo está correcto, intenta conectar sin contraseña y verifica que el servidor te rechaza si intentas usar una.
Prueba también a conectar desde otro ordenador sin clave. Debería darte un error de "Permiso denegado". Eso es exactamente lo que queremos.
[INFO]: Si tienes varios usuarios en el servidor, repite el proceso de copiar claves para cada uno. No es recomendable compartir la misma clave entre usuarios.
Solución de problemas comunes (FAQ)
No puedo conectar después de desactivar las contraseñas
Tranquilo, es un error común. Conéctate por el panel de Syspanel en el puerto 2106. En la sección de archivos, navega a /etc/ssh/sshd_config y cambia PasswordAuthentication no a PasswordAuthentication yes. Guarda y reinicia el servicio desde la terminal de Syspanel (si tiene consola) o contacta con tu proveedor para que lo hagan.
El servidor me pide contraseña aunque he copiado la clave
Revisa los permisos del directorio .ssh en tu servidor:
ls -la ~/.ssh
Debes ver algo como:
drwx------ 2 usuario usuario 4096 ...
-rw------- 1 usuario usuario 400 ... authorized_keys
Si los permisos no son esos, ejecuta:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
No recuerdo mi passphrase
Si olvidaste la frase de contraseña de tu clave privada, no hay forma de recuperarla. Tendrás que generar un nuevo par de claves y repetir el proceso. Es una molestia, pero es mejor que tener una clave sin proteger.
¿Puedo usar la misma clave para varios servidores?
Sí, puedes usar la misma clave pública en varios servidores. De hecho, es muy común. Solo tienes que copiarla a cada uno de ellos. La clave privada se queda en tu ordenador y no se duplica.
Consejos finales de seguridad para Syspanel
Ahora que ya tienes la autenticación con claves funcionando, te doy unos consejos extra para que tu servidor sea un fortín:
- Usa frases de contraseña largas para tus claves privadas. Nada de "1234".
- Cambia el puerto SSH por defecto (22) a otro número (por ejemplo, 2222). Esto reducirá los ataques automáticos.
- Usa Fail2ban para bloquear IPs que intenten múltiples conexiones fallidas.
- Mantén el sistema actualizado y revisa los logs de acceso con regularidad.
- Nunca compartas tu clave privada por correo, chat o servicios de mensajería.
[TIP]: En Syspanel, también puedes configurar un firewall gráfico. Aprovecha para limitar el acceso SSH solo a tu IP de origen si tienes IP fija.
Conclusión
Configurar la autenticación ssh con claves públicas en Syspanel es un proceso sencillo que te tomará menos de diez minutos, pero que multiplicará exponencialmente la seguridad de tu servidor. Ya no dependerás de contraseñas que pueden ser robadas o adivinadas, sino de un sistema criptográfico robusto y probado.
Recuerda que la clave privada es tu tesoro más preciado: guárdala bien, protégela con una buena passphrase y no la subas a ningún servicio en la nube. La clave pública, en cambio, puede estar en tantos servidores como necesites.
Si has seguido todos los pasos, ahora mismo tu servidor es notablemente más seguro que hace una hora. Y si te surge cualquier duda, el equipo de soporte de Syspanel estará encantado de ayudarte desde el panel de control en el puerto 2106.
¡A disfrutar de un servidor más seguro y tranquilo!
