Cómo deshabilitar el acceso SSH por contraseña en DirectAdmin
¿Por qué deshabilitar el acceso SSH por contraseña en DirectAdmin?
Cuando contratas un servidor con panel DirectAdmin, una de las primeras medidas de seguridad que debes implementar es proteger el acceso por SSH. Aunque el panel permite gestionar archivos, bases de datos y dominios de forma gráfica, el acceso por terminal sigue siendo la puerta principal para administrar el sistema operativo.
El problema es que muchos servidores vienen configurados por defecto para aceptar contraseñas como método de autenticación SSH. Esto es cómodo, pero también es una invitación abierta para ataques de fuerza bruta. Los bots recorren internet constantemente probando miles de combinaciones de usuario y contraseña por minuto. Si tu servidor tiene una contraseña débil o reutilizada, es solo cuestión de tiempo antes de que alguien entre.
La solución más efectiva y recomendada por expertos en seguridad servidor es deshabilitar por completo el acceso por contraseña y usar exclusivamente claves SSH (también llamadas llaves públicas/privadas). Esto significa que solo podrá conectarse quien tenga la clave privada correspondiente, algo mucho más difícil de robar o adivinar.
En este artículo te explico paso a paso cómo hacerlo en DirectAdmin, incluso si nunca has tocado un archivo de configuración en tu vida. No necesitas ser un experto, solo seguir las instrucciones con calma.
Requisitos previos antes de empezar
[WARNING]
Si deshabilitas la contraseña SSH y no has configurado correctamente tus claves, podrías quedarte fuera de tu propio servidor. Lee esta sección completa antes de continuar.
Antes de tocar nada, asegúrate de tener lo siguiente:
- Acceso SSH actual con usuario root o un usuario con permisos sudo.
- Un par de claves SSH generadas (pública y privada) en tu ordenador local.
- La clave pública ya instalada en el servidor.
- Una copia de seguridad de los archivos de configuración que vamos a modificar.
Si no tienes claves SSH generadas, no te preocupes. Te muestro cómo hacerlo en el siguiente apartado. Si ya las tienes, salta directo al paso de configuración.
Paso 1: Generar un par de claves SSH en tu ordenador
Para que el servidor te reconozca sin pedirte contraseña, necesitas un par de claves: una pública (que se queda en el servidor) y una privada (que nunca debe salir de tu ordenador).
En Windows (con PuTTY o PowerShell)
Si usas PowerShell (recomendado), abre la terminal y escribe:
ssh-keygen -t rsa -b 4096
Te preguntará dónde guardar la clave. Pulsa Enter para usar la ubicación por defecto (C:\Users\TuUsuario\.ssh\id_rsa). Después te pedirá una frase de contraseña (passphrase). Es recomendable ponerla, aunque no es obligatoria.
En macOS o Linux
Abre la terminal y escribe el mismo comando:
ssh-keygen -t rsa -b 4096
Se generará una clave pública (id_rsa.pub) y una privada (id_rsa) en ~/.ssh/.
[INFO]
La clave pública es la que puedes compartir libremente. La privada es secreta. Nunca la envíes por correo ni la subas a servicios de terceros.
Paso 2: Instalar la clave pública en tu servidor DirectAdmin
Ahora necesitas copiar la clave pública al servidor. Hay varias formas, pero la más sencilla es usar el comando ssh-copy-id desde tu terminal local.
ssh-copy-id usuario@tu-servidor.com
Te pedirá la contraseña actual una última vez. Después, la clave quedará instalada en el archivo ~/.ssh/authorized_keys del servidor.
Si ssh-copy-id no está disponible, puedes hacerlo manualmente:
- Abre la clave pública con un editor (por ejemplo,
cat ~/.ssh/id_rsa.pub). - Conéctate por SSH al servidor.
- Crea la carpeta
.sshsi no existe:mkdir -p ~/.ssh - Edita el archivo de claves autorizadas:
nano ~/.ssh/authorized_keys - Pega la clave pública, guarda y cierra.
Paso 3: Verificar que puedes conectarte con tu clave SSH
Antes de desactivar nada, comprueba que el acceso con clave funciona. Cierra la sesión actual y vuelve a conectarte, pero esta vez sin contraseña:
ssh usuario@tu-servidor.com
Si todo ha ido bien, entrarás directamente sin que te pida contraseña. Si te la pide, revisa los permisos de la carpeta .ssh y el archivo authorized_keys. Deben ser:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
[TIP]
Si usas PuTTY en Windows, tendrás que convertir la clave privada al formato.ppkusando PuTTYgen y cargarla en Pageant o en la configuración de la sesión.
Paso 4: Acceder al archivo de configuración SSH desde DirectAdmin
Ahora que ya sabes que las claves funcionan, es hora de modificar la configuración del servidor. En DirectAdmin, el archivo principal de configuración SSH se llama sshd_config y se encuentra en /etc/ssh/sshd_config.
Tienes dos opciones para editarlo:
Opción A: Desde el administrador de archivos de DirectAdmin
- Entra en tu panel DirectAdmin.
- Ve a Administrador de archivos (File Manager).
- Navega hasta
/etc/ssh/. - Busca el archivo
sshd_configy haz clic en Editar.
Opción B: Desde la terminal
Conéctate por SSH y usa un editor como nano o vi:
nano /etc/ssh/sshd_config
[INFO]
Si tu servidor usa un sistema con SELinux o AppArmor, no te preocupes por ahora. La configuración que vamos a cambiar es estándar y no suele interferir.
Paso 5: Modificar la directiva PasswordAuthentication
Dentro del archivo sshd_config, busca la línea que dice:
#PasswordAuthentication yes
En muchos servidores viene comentada (con # al principio). Lo que debes hacer es:
- Elimina el símbolo
#si existe. - Cambia el valor a
no. - Guarda el archivo.
El resultado debe verse así:
PasswordAuthentication no
[WARNING]
Asegúrate de que la líneaChallengeResponseAuthenticationtambién esté ennoo comentada. En algunos sistemas, esta opción puede anular la anterior.
Si no encuentras la línea, puedes añadirla al final del archivo. Pero es mejor buscarla bien porque suele estar en la sección de autenticación.
Paso 6: Reiniciar el servicio SSH
Los cambios no se aplican hasta que reinicies el servicio. Dependiendo del sistema operativo, el comando puede variar:
En sistemas con systemd (CentOS 7+, Ubuntu 16+)
systemctl restart sshd
En sistemas con SysVinit
service sshd restart
[TIP]
Si tienes miedo de quedarte fuera, abre una segunda sesión SSH antes de reiniciar. Así, si algo falla, puedes revertir los cambios desde la sesión que sigue activa.
Paso 7: Verificar que el acceso por contraseña está deshabilitado
Cierra tu sesión SSH actual y vuelve a intentar conectarte. Ahora debería fallar si intentas usar una contraseña. Si usas tu clave privada, deberías entrar sin problemas.
Puedes comprobarlo con el modo verboso de SSH:
ssh -v usuario@tu-servidor.com
En el registro verás algo como:
Authentications that can continue: publickey
Eso significa que el servidor solo acepta claves públicas, no contraseñas.
Paso 8: Configuraciones adicionales recomendadas
Deshabilitar la contraseña es un gran paso, pero puedes reforzar aún más la seguridad servidor con estos ajustes:
8.1. Desactivar el acceso root directo
Edita sshd_config y cambia:
PermitRootLogin no
Así obligas a usar un usuario normal y luego escalar privilegios con su o sudo.
8.2. Limitar los usuarios que pueden conectarse
Añade al final del archivo:
AllowUsers usuario1 usuario2
Solo esos usuarios podrán acceder por SSH.
8.3. Cambiar el puerto SSH por defecto
Aunque no es una medida definitiva, cambiar el puerto 22 a otro (por ejemplo, 22022) reduce el ruido de ataques automatizados.
Port 22022
[WARNING]
Si cambias el puerto, recuerda ajustar el firewall y actualizar tus clientes SSH. De lo contrario, perderás el acceso.
Errores comunes y cómo solucionarlos
Error: "Permission denied (publickey)"
Esto significa que el servidor no encuentra tu clave en authorized_keys. Revisa que la clave pública esté bien copiada y que los permisos sean correctos.
Error: "Server refused our key"
Suele deberse a que la clave privada no coincide con la pública, o a que el archivo authorized_keys tiene permisos demasiado abiertos.
Error: "Connection closed by remote host"
Puede ser que hayas deshabilitado la contraseña antes de instalar las claves. En ese caso, accede por el panel DirectAdmin a la opción Terminal (si tu hosting la ofrece) o contacta con tu proveedor para que reviertan el cambio.
Preguntas frecuentes (FAQ)
¿Es seguro deshabilitar la contraseña SSH?
Sí, es la práctica recomendada por la mayoría de expertos en ciberseguridad. Las claves SSH son mucho más difíciles de vulnerar que una contraseña, especialmente si usan al menos 2048 bits (mejor 4096).
¿Puedo volver a activar la contraseña si me quedo fuera?
Sí, siempre que tengas acceso al panel DirectAdmin o al sistema de archivos. Vuelve a cambiar PasswordAuthentication a yes y reinicia el servicio.
¿Afecta esto a mis sitios web alojados?
No. El cambio solo afecta al acceso por terminal. Tus páginas web, bases de datos y correos seguirán funcionando con normalidad.
¿Qué pasa si tengo varios usuarios en el servidor?
Cada usuario debe tener su propia clave pública instalada en su carpeta de usuario. Si no la tienen, no podrán conectarse.
¿Debo usar también una frase de contraseña en mis claves?
Es recomendable. Aunque la clave privada sea robada, sin la frase de contraseña no podrán usarla.
Conclusión
Deshabilitar el acceso por contraseña en DirectAdmin es una de las medidas más efectivas que puedes tomar para proteger tu servidor. Aunque al principio pueda parecer complicado, el proceso es sencillo si sigues los pasos con calma y verificas cada etapa.
Recuerda que la seguridad servidor no es un destino, sino un proceso continuo. Después de este cambio, revisa periódicamente los logs de acceso, actualiza el sistema y considera implementar herramientas como fail2ban para añadir una capa extra de protección.
Si has llegado hasta aquí, ya tienes un servidor mucho más robusto frente a ataques de fuerza bruta. Enhorabuena, has dado un paso enorme en la protección de tus datos y los de tus usuarios.
[TIP]
Guarda una copia de tu clave privada en un lugar seguro (como un gestor de contraseñas). Si la pierdes y has deshabilitado la contraseña, no podrás acceder nunca más por SSH.
