El acceso remoto como usuario root
a través de SSH está deshabilitado por defecto en muchas distribuciones Linux modernas. Esta restricción, lejos de ser arbitraria, forma parte de las buenas prácticas de ciberseguridad. Aun así, hay ocasiones en las que el inicio de sesión SSH como root
puede resultar útil o necesario: automatización, entornos controlados, servidores locales o sistemas de recuperación.
Este artículo explica cómo habilitar el acceso SSH como root
en tres de las distribuciones más usadas —Ubuntu, Debian y CentOS—, señalando diferencias entre ellas y recomendaciones de seguridad clave.
¿Por qué está deshabilitado el acceso como root?
El usuario root
tiene control total sobre el sistema. Permitir su acceso directo vía SSH incrementa significativamente el riesgo de:
- Ataques de fuerza bruta automatizados
- Escalada rápida de privilegios en caso de compromiso
- Falta de trazabilidad (no se distingue qué usuario humano accedió)
Por eso, en general, se recomienda usar usuarios normales con permisos sudo
y deshabilitar el login directo de root. Si decides habilitarlo, hazlo con precauciones estrictas.
Ubuntu y Debian: habilitar acceso SSH como root
Ubuntu y Debian comparten muchas configuraciones base, por lo que los pasos son prácticamente idénticos.
Paso 1: Habilitar la cuenta root (Ubuntu)
Ubuntu no activa la cuenta root por defecto (no tiene contraseña definida).
sudo passwd root
Esto asignará una contraseña al usuario root.
En Debian, este paso puede omitirse si ya definiste contraseña root durante la instalación.
Paso 2: Configurar el demonio SSH
Edita el archivo /etc/ssh/sshd_config
con privilegios:
sudo nano /etc/ssh/sshd_config
Busca y modifica o añade las siguientes líneas:
PermitRootLogin yes
PasswordAuthentication yes
Para más seguridad (uso con clave pública SSH):
PermitRootLogin prohibit-password
PasswordAuthentication no
Guarda el archivo y reinicia el servicio SSH:
sudo systemctl restart ssh
Ahora puedes acceder con:
ssh root@ip-del-servidor
Lenguaje del código: CSS (css)
CentOS / AlmaLinux / RHEL: proceso ligeramente distinto
En CentOS 7/8 y derivados como AlmaLinux o Rocky Linux, la cuenta root suele estar habilitada, pero el acceso por SSH puede estar restringido.
Paso 1: Verificar que root tiene contraseña
Ejecuta como superusuario o vía sudo
:
passwd root
Paso 2: Configurar SSH
Edita /etc/ssh/sshd_config
y cambia (o asegúrate de tener):
PermitRootLogin yes
PasswordAuthentication yes
Guarda los cambios y reinicia el servicio:
sudo systemctl restart sshd
(Opcional) Usar claves públicas para mayor seguridad
Una opción más segura que usar contraseña es configurar autenticación por clave SSH. Para ello:
- Genera la clave desde tu máquina local (si no la tienes):
ssh-keygen -t rsa -b 4096
- Copia la clave pública al servidor:
ssh-copy-id root@ip-del-servidor
- Verifica que
/root/.ssh/authorized_keys
contiene tu clave. - Edita
/etc/ssh/sshd_config
y asegúrate de tener:PermitRootLogin prohibit-password PasswordAuthentication no
Recomendaciones de seguridad
Si habilitas el acceso SSH como root, es fundamental reducir riesgos:
- Limita el acceso por IP: Usa
iptables
,firewalld
o servicios de cloud para restringir conexiones entrantes al puerto SSH. - Cambia el puerto por defecto (22) a otro menos predecible.
- Instala Fail2ban para bloquear intentos repetidos:
sudo apt install fail2ban # Ubuntu/Debian sudo yum install fail2ban # CentOS
- Desactiva root una vez terminadas tareas críticas.
Conclusión
Habilitar el acceso SSH como root puede ser útil en contextos controlados o necesidades concretas, pero nunca debe hacerse a la ligera. Ubuntu, Debian y CentOS permiten esta configuración, pero el enfoque ideal es permitirlo temporalmente o bajo condiciones estrictas de seguridad.
Cuando se trata de administradores noveles, lo más prudente es usar cuentas con sudo
, implementar autenticación por claves, y monitorizar accesos mediante herramientas como journalctl
, logwatch
o servicios SIEM.