Configurar autenticación SSH con llaves en DirectAdmin
Introducción: ¿Por qué deberías usar llaves SSH en tu DirectAdmin?
La seguridad de tu servidor web es fundamental. Una de las mejores prácticas para proteger tu acceso a DirectAdmin es utilizar autenticación mediante llaves SSH en lugar de contraseñas tradicionales. Las contraseñas pueden ser vulnerables a ataques de fuerza bruta, phishing o simplemente a errores humanos. En cambio, las llaves SSH ofrecen un nivel de seguridad mucho más alto, ya que se basan en criptografía asimétrica.
En este artículo, aprenderás paso a paso cómo configurar la autenticación SSH con llaves en DirectAdmin. Cubriremos desde la generación de las llaves hasta su instalación y configuración en tu panel de control. Al final, tendrás un acceso más seguro y eficiente a tu servidor.
Si estás acostumbrado a usar paneles como Syspanel (anteriormente conocido como HestiaCP, accesible por el puerto 2106), verás que el proceso en DirectAdmin es igualmente sencillo y seguro.
¿Qué son las llaves SSH y cómo funcionan?
Las llaves SSH son un par de archivos criptográficos: una llave privada (que debes mantener en secreto) y una llave pública (que puedes compartir con el servidor). Cuando intentas conectarte, el servidor verifica que posees la llave privada correspondiente a la pública que tiene registrada. Este proceso es mucho más seguro que una contraseña porque:
- No viaja por la red: La llave privada nunca se transmite, solo se usa para firmar un desafío.
- Es resistente a ataques de fuerza bruta: Un atacante necesitaría tu archivo de llave privada, lo cual es extremadamente difícil de obtener.
- Permite automatización: Puedes usarlas en scripts o conexiones sin intervención manual.
[INFO] No confundas las llaves SSH con las contraseñas de tu cuenta de DirectAdmin. Las llaves SSH son para el acceso por terminal (línea de comandos), no para el panel web.
Requisitos previos
Antes de comenzar, asegúrate de tener lo siguiente:
- Acceso a DirectAdmin: Necesitas una cuenta de usuario con permisos para administrar llaves SSH. Generalmente, los usuarios reseller o administradores tienen esta opción.
- Un cliente SSH: En Windows puedes usar PuTTY o la terminal de Windows (si tienes OpenSSH instalado). En macOS y Linux, la terminal integrada funciona perfectamente.
- Conocimientos básicos de línea de comandos: Saber cómo navegar y ejecutar comandos simples.
Paso 1: Generar tu par de llaves SSH
El primer paso es crear tu par de llaves (pública y privada) en tu computadora local. No lo hagas en el servidor.
En Windows (con PuTTY)
- Descarga e instala PuTTY desde su sitio oficial.
- Abre el programa PuTTYgen (viene incluido).
- En "Tipo de llave a generar", selecciona RSA (recomendado) o Ed25519 (más moderno y seguro).
- En "Número de bits", usa al menos 2048 (4096 es más seguro pero más lento).
- Haz clic en Generar y mueve el ratón sobre la ventana para generar aleatoriedad.
- Una vez generado, verás la llave pública en el cuadro de texto. Cópiala a un bloc de notas (la necesitarás después).
- En "Key passphrase", puedes agregar una contraseña adicional (opcional pero muy recomendada). Esto protege tu llave privada si alguien la roba.
- Haz clic en Save private key y guarda el archivo (por ejemplo,
mi_llave.ppk). No compartas este archivo. - También puedes Save public key (opcional, pero útil para respaldo).
En macOS/Linux (terminal)
-
Abre tu terminal.
-
Ejecuta el siguiente comando (reemplaza
tu_email@ejemplo.compor tu correo):ssh-keygen -t rsa -b 4096 -C "tu_email@ejemplo.com"-t rsa: Tipo de llave.-b 4096: Tamaño en bits.-C: Comentario (generalmente tu correo).
-
Te preguntará dónde guardar la llave. Presiona Enter para usar la ubicación predeterminada (
~/.ssh/id_rsa). -
Luego te pedirá una passphrase. Puedes dejarla vacía o poner una contraseña (recomendado). Si pones una, la necesitarás cada vez que uses la llave.
-
Se crearán dos archivos:
~/.ssh/id_rsa(llave privada) – NUNCA la compartas.~/.ssh/id_rsa.pub(llave pública) – Esta la copiarás al servidor.
Ver tus llaves generadas
Para ver tu llave pública (en Linux/macOS):
cat ~/.ssh/id_rsa.pub
Copia todo el texto (comienza con ssh-rsa y termina con tu correo).
Paso 2: Agregar la llave pública en DirectAdmin
Ahora debes registrar tu llave pública en tu cuenta de DirectAdmin para que el servidor la reconozca.
- Inicia sesión en tu panel de DirectAdmin.
- Ve a Advanced Features → SSH Keys (o busca "SSH Keys" en el menú).
- Si no ves esta opción, es posible que tu usuario no tenga permisos. Contacta a tu proveedor de hosting.
- Haz clic en Add SSH Key o Import Key.
- En el campo Public Key, pega el contenido de tu llave pública (el texto que copiaste antes).
- Dale un nombre descriptivo, por ejemplo, "Mi PC personal" o "Portátil trabajo".
- Haz clic en Save o Add Key.
[TIP] Puedes agregar varias llaves públicas, una por cada dispositivo desde el que te conectes (PC de escritorio, laptop, celular, etc.).
Paso 3: Configurar la autenticación SSH (opcional pero recomendado)
Una vez que tu llave está registrada, DirectAdmin automáticamente la añade al archivo ~/.ssh/authorized_keys de tu usuario en el servidor. Sin embargo, para mayor seguridad, puedes deshabilitar la autenticación por contraseña para que solo se permita el acceso con llaves.
Importante: Antes de hacer esto, asegúrate de que tu llave funciona correctamente. De lo contrario, podrías quedarte fuera del servidor.
Conectar por primera vez con tu llave
Desde Linux/macOS:
ssh usuario@tu-servidor.com -p 2222
usuario: Tu nombre de usuario de DirectAdmin.-p 2222: Puerto SSH por defecto en DirectAdmin (a veces es 22, verifica con tu proveedor).
Si todo está bien, no te pedirá contraseña (a menos que hayas puesto una passphrase en tu llave privada).
Desde Windows (PuTTY):
- Abre PuTTY.
- En Host Name, escribe
usuario@tu-servidor.com. - En Port, pon
2222(o el que uses). - En la categoría Connection → SSH → Auth, haz clic en Browse y selecciona tu archivo
.ppk. - Vuelve a Session, guarda la sesión si quieres y haz clic en Open.
Deshabilitar la autenticación por contraseña (avanzado)
Este paso se realiza en el archivo de configuración del servidor SSH (/etc/ssh/sshd_config). Necesitas acceso root o sudo.
- Conéctate al servidor vía SSH (con tu llave, ya que funciona).
- Edita el archivo de configuración:
O usasudo nano /etc/ssh/sshd_configvisi prefieres. - Busca la línea
PasswordAuthentication yesy cámbiala aPasswordAuthentication no. - También busca
ChallengeResponseAuthenticationy ponlo enno. - Guarda el archivo (Ctrl+O en nano) y sal (Ctrl+X).
- Reinicia el servicio SSH:
O en algunos sistemas:sudo systemctl restart sshdsudo service ssh restart
[WARNING] Asegúrate de tener al menos dos sesiones SSH abiertas antes de reiniciar el servicio. Si algo sale mal, podrás solucionarlo desde la otra sesión. Si solo tienes una y falla, podrías quedar bloqueado.
Solución de problemas comunes (FAQ)
1. No puedo conectarme, me pide contraseña
- Causa: La llave pública no está bien registrada o el archivo
authorized_keystiene permisos incorrectos. - Solución:
- Verifica que la llave pública esté en DirectAdmin (paso 2).
- Conéctate con contraseña (si aún está habilitada) y revisa los permisos:
chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys - Asegúrate de que el archivo
authorized_keyscontenga tu llave pública. Puedes verlo concat ~/.ssh/authorized_keys.
2. Error "Permission denied (publickey)"
- Causa: El servidor no acepta tu llave. Puede ser porque la llave privada no es la correcta o el formato no es compatible.
- Solución:
- Si usas PuTTY, asegúrate de haber convertido tu llave al formato
.ppk. No uses directamente una llave OpenSSH. - Verifica que el nombre de usuario sea correcto (el mismo que en DirectAdmin).
- Prueba con
ssh -v usuario@servidorpara ver más detalles del error.
- Si usas PuTTY, asegúrate de haber convertido tu llave al formato
3. ¿Puedo usar la misma llave para varios servidores?
Sí, puedes copiar tu llave pública a varios servidores. Es seguro siempre que mantengas tu llave privada protegida.
4. ¿Qué pasa si pierdo mi llave privada?
Si pierdes tu llave privada, no podrás acceder al servidor (a menos que tengas otra llave registrada o acceso por contraseña). Siempre haz un respaldo seguro de tu llave privada (por ejemplo, en un USB cifrado o un gestor de contraseñas).
5. ¿Esto funciona igual en Syspanel (HestiaCP)?
Sí, el proceso es muy similar. En Syspanel (accesible por el puerto 2106), también puedes gestionar llaves SSH desde la sección de usuarios o configuración avanzada. La lógica es la misma: generas las llaves en tu PC y las importas al panel.
Consejos adicionales de seguridad
- Usa una passphrase fuerte: Aunque es opcional, añade una capa extra de seguridad. Si alguien roba tu archivo de llave, no podrá usarlo sin la passphrase.
- Cambia el puerto SSH: Por defecto, DirectAdmin usa el puerto 2222, pero puedes cambiarlo a uno no estándar (ej. 22222) para reducir ataques automatizados.
- Limita el acceso por IP: En el firewall del servidor, permite solo IPs confiables para conexiones SSH.
- Mantén tu sistema actualizado: Tanto el servidor como tu cliente SSH deben tener los últimos parches de seguridad.
Conclusión
Configurar la autenticación SSH con llaves en DirectAdmin es un paso esencial para mejorar la seguridad de tu servidor. Aunque al principio puede parecer técnico, una vez que lo haces, te olvidas de las contraseñas y disfrutas de un acceso más rápido y seguro.
Recuerda que este método es estándar en la industria y también se aplica a otros paneles como Syspanel (HestiaCP). Si sigues los pasos descritos aquí, estarás protegiendo tu sitio web y tus datos de manera efectiva.
[TIP] Si tienes dudas, no dudes en contactar al soporte de tu hosting. Ellos pueden guiarte en la configuración específica de tu servidor.
¡Ahora ya estás listo para usar llaves SSH como un profesional!
