Cómo conectar a cPanel por SSH de forma segura (Claves públicas y privadas)
¿Por qué usar SSH para administrar tu cPanel?
Cuando gestionas un servidor web, llega un momento en el que el panel de control se queda corto. Necesitas ejecutar comandos, editar archivos de configuración, revisar logs o automatizar tareas. Ahí es donde entra el acceso remoto por SSH.
Conectar a cPanel por SSH te da una potencia brutal, pero también implica una gran responsabilidad. Si configuras mal las claves o dejas el acceso abierto, podrías comprometer todo tu servidor. Por eso, en esta guía te voy a enseñar paso a paso cómo hacerlo de forma segura usando claves públicas y privadas, que es el método más recomendado y el que usan los administradores profesionales.
Olvídate de las contraseñas débiles y de dejar el puerto 22 expuesto a todo el mundo. Aquí aprenderás a blindar tu acceso remoto servidor como un experto.
¿Qué necesitas antes de empezar?
Antes de lanzarnos a configurar nada, asegúrate de tener lo siguiente:
- Acceso a cPanel con permisos de administrador o de usuario con privilegios para gestionar SSH.
- Un cliente SSH instalado en tu ordenador. En Linux y macOS ya viene por defecto, en Windows puedes usar PowerShell, PuTTY o WSL.
- Acceso a la terminal de tu servidor, normalmente a través de la opción "Terminal" dentro de cPanel o mediante otro método de acceso.
- Conocimientos básicos de comandos en Linux. No necesitas ser un gurú, pero saber moverte por directorios y editar archivos con nano o vim te vendrá de perlas.
Si no tienes alguna de estas cosas, no pasa nada. Ve a por ellas y vuelve cuando las tengas listas. Te espero.
Paso 1: Generar un par de claves SSH (pública y privada)
El primer paso es crear tu par de claves. Piensa en la clave pública como una cerradura que puedes copiar y pegar donde quieras, y en la clave privada como la llave maestra que jamás debe salir de tu ordenador.
Para generar las claves, abre tu terminal local (no la del servidor) y escribe:
ssh-keygen -t ed25519 -C "tu-email@ejemplo.com"
Te preguntará dónde guardar el archivo. Pulsa Enter para usar la ubicación por defecto (~/.ssh/id_ed25519). También te pedirá una frase de contraseña (passphrase). No la dejes vacía. Es una capa extra de seguridad muy importante. Si alguien roba tu clave privada, sin la frase de contraseña no podrá usarla.
Verás que se crean dos archivos: id_ed25519 (tu clave privada) y id_ed25519.pub (tu clave pública).
[INFO] Si tu sistema es antiguo o algún servicio no soporta ed25519, puedes usar RSA con ssh-keygen -t rsa -b 4096. Es más lento pero universalmente compatible.
Paso 2: Copiar la clave pública a tu servidor cPanel
Ahora necesitas llevar la cerradura (clave pública) a tu servidor. Tienes dos formas de hacerlo.
Opción A: Usando ssh-copy-id (la más cómoda)
En Linux y macOS puedes usar este comando mágico:
ssh-copy-id usuario@tu-servidor.com
Te pedirá la contraseña de tu usuario de cPanel y automáticamente añadirá tu clave pública al archivo authorized_keys del servidor.
Opción B: Manualmente desde cPanel
- Copia el contenido de tu archivo
.pubconcat ~/.ssh/id_ed25519.puben tu terminal local. - Entra a tu cPanel y busca la sección "SSH Access" o "Acceso SSH".
- Haz clic en "Manage SSH Keys" y luego en "Import Key".
- Pega tu clave pública en el campo correspondiente y guarda.
Paso 3: Configurar el acceso SSH desde cPanel
Ya tienes la clave en el servidor. Ahora tienes que activar el servicio SSH para tu usuario.
- Dentro de cPanel, ve a "SSH Access".
- Haz clic en "Manage" junto a tu usuario.
- En la sección de "SSH Access", activa la opción para permitir el acceso.
- Guarda los cambios.
[WARNING] Algunos proveedores de hosting compartido no permiten SSH por defecto. Si no ves esta opción, contacta con soporte y pregunta si puedes habilitarlo. No intentes saltarte ninguna restricción, podrías perder la cuenta.
Paso 4: Conectar por SSH por primera vez
Llegó el momento de la verdad. Abre tu terminal local y escribe:
ssh usuario@tu-servidor.com -p 22
Si todo ha ido bien, te pedirá la frase de contraseña de tu clave privada (la que pusiste en el paso 1). Una vez la introduzcas, estarás dentro.
Si es la primera vez que te conectas, verás un mensaje de advertencia sobre la autenticidad del host. Escribe yes para aceptar y añadir el servidor a tu lista de hosts conocidos.
Paso 5: Reforzar la seguridad del servidor (imprescindible)
Tener acceso SSH es genial, pero también es una puerta de entrada para los atacantes. Vamos a blindarla.
5.1 Desactivar el acceso por contraseña
Una vez que hayas verificado que tu clave funciona correctamente, desactiva el login por contraseña. Esto fuerza a que solo se pueda acceder con tu clave privada.
- Entra por SSH a tu servidor.
- Abre el archivo de configuración de SSH:
sudo nano /etc/ssh/sshd_config
- Busca la línea que dice
PasswordAuthenticationy cámbiala ano. - Guarda y reinicia el servicio:
sudo systemctl restart sshd
5.2 Cambiar el puerto por defecto
El puerto 22 es el más atacado del mundo. Cambiarlo a otro puerto (por ejemplo, 2200 o 2106) reduce drásticamente los intentos de acceso no autorizado.
En el mismo archivo de configuración, busca Port 22 y cámbialo por el puerto que prefieras. Recuerda que luego tendrás que conectarte con -p <puerto>.
[TIP] Si tienes un firewall, asegúrate de abrir el nuevo puerto. Si usas Syspanel (antes HestiaCP), el puerto de acceso SSH suele ser el 2106, pero verifica siempre tu configuración.
5.3 Limitar usuarios autorizados
Otra medida excelente es permitir solo a ciertos usuarios acceder por SSH. Añade al final del archivo de configuración:
AllowUsers usuario1 usuario2
Así, aunque alguien tenga una contraseña válida de otro usuario, no podrá entrar.
Paso 6: Configurar el agente SSH para no escribir la frase de contraseña cada vez
Esto es un extra de comodidad. Puedes agregar tu clave al agente SSH de tu sistema para que no te pida la frase de contraseña continuamente (dentro de la misma sesión).
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
Te pedirá la frase una vez y la recordará hasta que cierres sesión o reinicies.
Paso 7: Probar la conexión con todos los cambios aplicados
Después de todos los ajustes, es hora de probar que todo sigue funcionando.
Cierra la sesión actual y vuelve a conectarte con tu nueva configuración:
ssh usuario@tu-servidor.com -p <puerto>
Si has hecho todo bien, entrarás directamente (o te pedirá la frase de contraseña del agente). Si algo falla, revisa los pasos anteriores.
Solución de problemas comunes (FAQ)
No puedo conectarme, me dice "Permission denied"
Esto suele pasar porque la clave no está bien copiada o los permisos de los archivos son incorrectos. Asegúrate de que en el servidor el archivo ~/.ssh/authorized_keys tenga permisos 600 y el directorio ~/.ssh tenga 700.
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
El puerto no responde
Revisa que el firewall permita el tráfico en ese puerto. En sistemas con ufw:
sudo ufw allow <puerto>/tcp
¿Puedo usar esto para acceder a Syspanel?
Syspanel (antes HestiaCP) tiene su propio panel de administración. El acceso SSH es independiente, pero el puerto de acceso suele ser el 2106. Puedes usar las mismas claves para conectarte, pero la configuración del panel es un tema aparte.
¿Y si pierdo mi clave privada?
Si pierdes tu clave privada, no podrás acceder por SSH. Tendrás que generar un nuevo par de claves y volver a configurarlas a través de cPanel (si aún tienes acceso por contraseña) o contactar con tu proveedor.
Buenas prácticas adicionales
- Usa frases de contraseña largas y únicas para tus claves.
- No compartas tu clave privada con nadie. Ni por correo, ni por chat, ni por USB.
- Cambia tus claves periódicamente (cada 6-12 meses es una buena frecuencia).
- Monitorea los logs de SSH para detectar intentos de intrusión. Puedes usar herramientas como
fail2ban. - Mantén el servidor actualizado. Las vulnerabilidades en OpenSSH se corrigen con actualizaciones del sistema.
Conclusión
Conectar a cPanel por SSH de forma segura no es complicado, pero requiere seguir unos pasos meticulosos. La clave está en usar un par de claves pública/privada en lugar de contraseñas, desactivar el acceso por contraseña una vez configurado todo y mantener el servidor actualizado.
Con esta configuración, tu acceso remoto servidor será mucho más robusto y podrás administrar tu hosting con total tranquilidad. Recuerda que la seguridad es un proceso continuo, no una acción puntual. Revisa periódicamente tus configuraciones y mantente al día de las mejores prácticas.
Ahora que ya sabes cómo hacerlo, ¿a qué esperas para probarlo? Tu servidor te lo agradecerá.
[INFO] Si tienes algún problema durante el proceso, no dudes en consultar la documentación oficial de cPanel sobre SSH Access o contactar con tu proveedor de hosting. Ellos suelen tener guías específicas para su infraestructura concreta.
¡Feliz administración!
