Cómo Usar la Autenticación SSH con Claves Públicas en Syspanel (Guía para Principiantes)
¿Alguna vez has tenido que escribir una contraseña súper larga cada vez que te conectas a tu servidor? ¿O te preocupa que alguien pueda adivinarla y colarse en tu web? Hoy vamos a solucionar eso de una vez por todas. Te voy a enseñar a usar la autenticación SSH con claves públicas, un método mucho más seguro y cómodo que la contraseña tradicional. Y lo haremos con ejemplos prácticos dentro de Syspanel, el panel de control que hace que todo sea más sencillo.
No te preocupes si nunca has oído hablar de esto. Esta guía está pensada para principiantes absolutos, así que iremos paso a paso, sin tecnicismos raros y con mucho cariño. Al final, serás capaz de conectarte a tu servidor sin miedo y con la tranquilidad de saber que está bien protegido.
¿Qué es la Autenticación SSH con Claves Públicas y por qué te interesa?
Imagina que tu servidor es una casa. La contraseña tradicional es como una llave de copia sencilla: cualquiera que la consiga puede entrar. La autenticación SSH con claves públicas es como tener una cerradura con doble sistema: una llave especial que solo tú tienes (la clave privada) y una cerradura que reconoce esa llave (la clave pública).
Técnicamente, es un par de archivos criptográficos que trabajan juntos.
- La clave privada: Es como tu DNI digital. Nunca, jamás, debe salir de tu ordenador personal. Es la que demuestra que eres tú.
- La clave pública: Es como una cerradura. Puedes copiarla y ponerla en tu servidor (en Syspanel) sin miedo. Sirve para que el servidor te reconozca cuando intentas entrar con tu clave privada.
¿Y por qué es mejor que una contraseña?
- Seguridad SSH superior: Las contraseñas pueden ser robadas, adivinadas o forzadas con ataques de fuerza bruta. Las claves criptográficas son matemáticamente casi imposibles de romper.
- Adiós a las contraseñas: Te olvidas de memorizar contraseñas complejas para el acceso SSH. Solo tienes que tener tu clave privada a salvo.
- Acceso servidor más fluido: Una vez configurado, te conectas sin teclear nada (si no pones frase de contraseña a la clave). Es como tener una llave maestra.
- Perfecto para automatizar: Si usas herramientas de despliegue o scripts, con claves SSH es mucho más seguro que guardar contraseñas en archivos de texto.
En resumen, es la forma estándar y más profesional de gestionar el acceso a un servidor, y Syspanel lo soporta de fábrica. Además, es el primer paso para blindar tu ciberseguridad.
Preparando el Terreno: Requisitos Previos
Antes de lanzarnos, asegurémonos de que tienes todo listo. No necesitas ser un hacker, solo seguir estas indicaciones.
- Tener un servidor con Syspanel: Obviamente, necesitas un hosting o VPS donde esté instalado Syspanel. Recuerda que el acceso a tu panel de control se hace a través del puerto 2106 (ej.
https://tu-servidor.com:2106). - Acceso al servidor por SSH: Aunque vamos a cambiarlo, necesitas acceso actual por SSH (normalmente con usuario
rooto un usuario con permisos) y su contraseña para la primera configuración. - Un ordenador local: Puede ser Windows, macOS o Linux. Vamos a usar programas que ya vienen integrados en el sistema o que son muy fáciles de instalar.
- Ganas de aprender: ¡Eso es lo más importante! No te frustres si a la primera no sale, es normal. Respira y repasa los pasos.
[TIP]: Si estás en Windows, te recomiendo usar PowerShell o Terminal (el nuevo Windows Terminal). En macOS o Linux, usa la app "Terminal" que ya viene en el sistema.
Paso 1: Generando tu Par de Claves SSH (La Fábrica de Llaves)
Este es el primer paso y se hace en tu ordenador local, no en el servidor. Vamos a "fabricar" nuestra llave privada y nuestra cerradura (clave pública).
Abre tu terminal (PowerShell, CMD o la Terminal de Mac/Linux) y escribe el siguiente comando:
ssh-keygen -t ed25519 -a 100
No te asustes, vamos a desglosarlo:
ssh-keygen: Es el programa que crea las claves.-t ed25519: Le dice que use el algoritmo de cifrado más moderno y seguro (Ed25519). Es más rápido y seguro que el clásico RSA.-a 100: Aumenta el número de rondas de derivación de clave. Esto hace que sea más difícil de adivinar si alguien roba tu clave privada. Es una capa extra de seguridad SSH.
Al ejecutarlo, te preguntará dónde guardar las claves. Lo normal es dejar la ruta que sale por defecto, que suele ser /home/tu_usuario/.ssh/id_ed25519. Solo pulsa Enter.
[INFO]: Si usas un sistema antiguo o necesitas compatibilidad con herramientas viejas, puedes usar ssh-keygen -t rsa -b 4096. Pero si puedes, usa Ed25519, es el futuro.
Después, te pedirá una frase de contraseña (passphrase). Esto es muy importante:
- ¿Qué es? Es una contraseña adicional para proteger tu clave privada. Si alguien roba tu archivo de clave privada, sin esta frase no podrá usarla.
- ¿La pongo? SÍ, POR FAVOR. Aunque parezca un paso extra, es una barrera de seguridad brutal. Te la pedirá cada vez que uses la clave (aunque puedes configurar agentes para que la recuerden).
- ¿Qué pongo? Una contraseña que no uses en ningún otro sitio. No tiene que ser una frase del Quijote, pero sí algo que solo tú sepas.
Ponla, confírmala y... ¡listo! Ya tienes tu par de claves. Verás que se han creado dos archivos en la carpeta .ssh de tu usuario:
id_ed25519(tu clave privada, ¡no la compartas!).id_ed25519.pub(tu clave pública, esta es la que daremos al servidor).
Paso 2: Copiando tu Clave Pública a Syspanel (Dando la Cerradura)
Ahora tenemos la cerradura (la clave pública) y necesitamos instalarla en nuestro servidor. Syspanel facilita mucho esto, pero primero necesitamos copiar el contenido de la clave pública.
Para ver tu clave pública, escribe en tu terminal:
cat ~/.ssh/id_ed25519.pub
Se te mostrará un texto largo que empieza por ssh-ed25519 AAAA.... Cópialo entero, desde el principio hasta el final. Es tu cerradura.
Ahora, vamos a conectarnos a tu servidor para poner la cerradura en la puerta. Tenemos dos opciones: la manual (con comandos) o usando las herramientas de Syspanel.
Opción A: El método rápido con Syspanel (Recomendado para principiantes)
Aunque Syspanel no tiene un botón mágico para "importar claves" directamente en la interfaz web (o puede que en tu versión sí lo tenga), la forma más común es a través de su administrador de archivos o usando el terminal que viene integrado en el panel.
- Entra a tu Syspanel (recuerda, en el puerto 2106).
- Busca la herramienta "Terminal" o "Consola" en el menú principal (normalmente está en la parte de "Herramientas" o "Avanzado").
- Se abrirá una ventana con una terminal dentro de tu servidor. Ahora, vamos a crear la carpeta
.sshy el archivoauthorized_keys.
Escribe estos comandos uno a uno en la terminal de Syspanel:
mkdir -p ~/.ssh
echo "PEGA_AQUI_TU_CLAVE_PUBLICA" >> ~/.ssh/authorized_keys
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
Explicación:
mkdir -p ~/.ssh: Crea la carpeta.sshen tu directorio personal (si no existe).echo "..." >> authorized_keys: Pega el contenido de tu clave pública (el que copiaste antes) dentro del archivoauthorized_keys. Este es el archivo que el servidor consulta para saber qué cerraduras acepta.chmod 700 ~/.ssh: Establece los permisos para que solo tu usuario pueda leer y escribir en la carpeta.ssh.chmod 600 authorized_keys: Igual que el anterior, pero para el archivo de claves.
[WARNING]: Es fundamental que los permisos sean estos. Si son demasiado abiertos, el servidor SSH los rechazará por seguridad y no te dejará entrar.
Opción B: El método clásico con ssh-copy-id (Más rápido si sabes lo que haces)
Esta opción es más elegante y se hace desde tu terminal local. Solo funciona si tienes instalada la herramienta ssh-copy-id (en macOS y Linux suele venir, en Windows con PowerShell a veces no).
El comando es:
ssh-copy-id -i ~/.ssh/id_ed25519.pub usuario@tu-servidor.com
Te pedirá la contraseña de tu servidor (la que usas ahora para conectarte por SSH). Una vez la pongas, automáticamente copiará tu clave pública al servidor y la pondrá en el sitio correcto con los permisos adecuados.
[TIP]: Si estás en Windows y no tienes ssh-copy-id, puedes usar la Opción A sin problema, es igual de válida.
Paso 3: Conectándote con tu Nueva Clave (¡El Momento de la Verdad!)
Ahora viene la parte emocionante. Vamos a probar que la cerradura funciona.
En tu terminal local, escribe:
ssh usuario@tu-servidor.com
Si pusiste una frase de contraseña al crear la clave, te la pedirá. Si no, entrarás directamente. ¡Felicidades! Ya estás dentro usando SSH claves públicas.
¿Y si no funciona?
No pasa nada, vamos a solucionarlo. Lo más común es que el servidor te pida la contraseña en vez de usar la clave. Eso significa que algo no está bien configurado.
- Revisa los permisos: Asegúrate de haber ejecutado los comandos
chmodcorrectamente en el servidor. - Comprueba la ruta: ¿Estás seguro de que tu clave pública está en
~/.ssh/id_ed25519.pub? Si usaste otra ruta al crearla, necesitas especificarla con-i. - Modo verbose: Ejecuta
ssh -v usuario@tu-servidor.com. Esto mostrará un montón de información. Busca líneas que digan "Offering public key" o "Permission denied (publickey)". Esto te dará pistas.
Paso 4: Desactivar la Contraseña para Acceso SSH (Blindando la Puerta)
Este es el paso final y el que más sube tu seguridad SSH. Una vez que has confirmado que las claves funcionan, es hora de decirle al servidor que ya no acepte contraseñas. Así, aunque alguien robe tu contraseña, no podrá entrar.
MUY IMPORTANTE: No hagas este paso hasta que estés 100% seguro de que puedes entrar con tu clave. Si te equivocas, podrías quedarte fuera de tu propio servidor.
- Conéctate a tu servidor usando tu clave (ya sabes, con
ssh usuario@tu-servidor.com). - Abre el archivo de configuración de SSH con un editor de texto. Usaremos
nano, que es fácil para principiantes:
sudo nano /etc/ssh/sshd_config
- Busca estas líneas (puede que estén comentadas con un
#al principio):
#PasswordAuthentication yes
#ChallengeResponseAuthentication yes
#UsePAM yes
- Cámbialas por esto (quitando el
#y poniendono):
PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM no
[WARNING]: Cambiar UsePAM a no puede romper otros métodos de autenticación. Si usas algo más que claves (por ejemplo, bases de datos de usuarios), déjalo en yes. Para la mayoría de los casos con claves SSH, ponerlo en no es correcto, pero ve con cuidado.
-
Guarda el archivo y sal del editor. En
nano, se hace conCtrl + X, luegoY(para confirmar guardar) y luegoEnter. -
Reinicia el servicio SSH para que los cambios surtan efecto:
sudo systemctl restart sshd
¡Y LISTO! A partir de ahora, el acceso servidor solo será posible con tu clave privada. Las contraseñas ya no serán válidas. Es como cambiar la cerradura de tu casa y tirar las copias de la llave vieja.
Solución de Problemas Comunes (FAQ)
Aquí tienes un mini-FAQ con los problemas más típicos y cómo resolverlos.
¿Qué hago si he perdido mi clave privada?
Esto es grave. Si pierdes la clave privada y has desactivado las contraseñas, no podrás entrar. La solución es usar la herramienta de recuperación de Syspanel (si tu proveedor la tiene) o contactar con el soporte técnico de tu hosting para que te ayuden a restablecer el acceso. Recuerda que, en este caso, tendrías que reconfigurar todo el sistema de claves.
¿Puedo tener varias claves públicas en mi servidor?
¡Sí! Simplemente añade cada clave pública en una línea nueva del archivo ~/.ssh/authorized_keys. Esto es útil si tienes varios ordenadores (casa, trabajo, portátil) o si varios desarrolladores necesitan acceder.
¿Qué es el agente SSH y para qué sirve?
El agente SSH es un programa que se ejecuta en tu ordenador y guarda tu clave privada en memoria. Así, solo tienes que poner la frase de contraseña una vez por sesión, y el agente la recuerda para todas las conexiones siguientes. Es una gran comodidad.
Para usarlo, solo tienes que iniciarlo en tu terminal:
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
Te pedirá tu frase de contraseña una vez y listo. Ya no te la volverá a pedir hasta que reinicies el ordenador.
¿Syspanel me permite gestionar las claves desde su interfaz?
Algunas versiones de Syspanel tienen un módulo para gestionar usuarios y sus claves SSH desde la interfaz web. Explora el panel en busca de "Usuarios SSH", "Acceso SSH" o "Seguridad". Si tu versión lo tiene, es la forma más sencilla de añadir o revocar claves sin usar la terminal. Si no lo encuentras, siempre puedes usar el método de terminal que hemos visto.
Conclusión: Tu Servidor es una Fortaleza
Enhorabuena. Has dado un paso gigante en la ciberseguridad de tu proyecto. Ya no dependes de contraseñas frágiles. Has configurado la autenticación SSH con claves públicas en tu servidor Syspanel, que es el método que usan los profesionales de todo el mundo.
Recuerda siempre:
- Tu clave privada es tu tesoro. Guárdala en un lugar seguro, idealmente cifrada y con una copia de seguridad en un sitio físico.
- Tu clave pública es tu cerradura. Puedes ponerla en tantos servidores como quieras.
- La frase de contraseña es tu última línea de defensa. Úsala siempre.
Hemos cubierto desde qué es una clave SSH hasta cómo desactivar las contraseñas, pasando por la configuración en Syspanel y la resolución de problemas comunes. Ahora, cuando te conectes a tu servidor, lo harás con la tranquilidad de saber que has blindado la puerta de entrada con la mejor tecnología disponible.
Si te ha quedado alguna duda, vuelve a leer los pasos con calma o busca en la documentación oficial de Syspanel (recuerda, el puerto de acceso es el 2106). La seguridad no es un destino, es un viaje, y acabas de dar el paso más importante. ¡Buen trabajo!
