En la mayoría de distribuciones modernas de Linux, incluyendo Ubuntu, el acceso remoto al usuario root
mediante SSH está deshabilitado por defecto. Esta configuración no es un capricho: se trata de una medida de seguridad clave para reducir la superficie de ataque de los servidores. Sin embargo, hay casos específicos —como en entornos de prueba, sistemas aislados o tareas de automatización— donde habilitar el inicio de sesión SSH como root puede ser necesario.
A continuación, se detalla cómo permitir esta opción en Ubuntu, junto con las implicaciones que conlleva y las mejores prácticas para minimizar los riesgos.
⚠️ Advertencia preliminar
Permitir el acceso remoto como root puede exponer el sistema a ataques automatizados de fuerza bruta o acceso no autorizado si no se implementan medidas adicionales como autenticación mediante claves públicas, firewalls restrictivos o acceso limitado por IP. Se recomienda usar esta configuración únicamente si se comprende plenamente el impacto que puede tener.
Requisitos previos
- Un sistema Ubuntu (20.04, 22.04 o posterior)
- Acceso con privilegios
sudo
a un usuario normal - Acceso al servidor por SSH (por defecto, el puerto 22)
- (Opcional) Clave SSH configurada
Paso 1: Establecer una contraseña segura para root
En Ubuntu, la cuenta root
está deshabilitada por defecto (sin contraseña definida). Para activarla:
sudo passwd root
Introduce y confirma una contraseña segura para el usuario root
.
Paso 2: Editar la configuración del servidor SSH
Abre el archivo de configuración de SSH:
sudo nano /etc/ssh/sshd_config
Busca las siguientes directivas y asegúrate de que estén configuradas así:
PermitRootLogin yes
También puedes usar:
PermitRootLogin prohibit-password
Esto permite acceso root solo con claves públicas (más seguro que el acceso por contraseña).
Asegúrate también de que PasswordAuthentication esté habilitado si no estás usando claves:
PasswordAuthentication yes
O si prefieres mayor seguridad:
PasswordAuthentication no
PermitRootLogin prohibit-password
Esta opción requiere que tengas las claves SSH previamente configuradas para root en /root/.ssh/authorized_keys
.
Paso 3: Reiniciar el servicio SSH
Guarda el archivo y reinicia el servicio SSH para aplicar los cambios:
sudo systemctl restart ssh
Paso 4: Verificar el acceso
Desde otro terminal o cliente SSH, intenta conectarte como root:
ssh root@IP_DEL_SERVIDOR
Introduce la contraseña o utiliza la clave SSH correspondiente.
Recomendaciones de seguridad
Si decides mantener activo el acceso root vía SSH, considera las siguientes medidas:
- Restringir el acceso por IP usando
iptables
,ufw
o reglas de seguridad en la nube. - Cambiar el puerto SSH por defecto (
Port 22
a otro número). - Desactivar acceso por contraseña y usar autenticación con claves públicas.
- Habilitar Fail2ban para bloquear intentos fallidos reiterados:
sudo apt install fail2ban
- Auditar los accesos con
last
,journalctl
ologwatch
.
Conclusión
Habilitar el inicio de sesión SSH como root en Ubuntu puede facilitar tareas de administración avanzada, pero debe hacerse con conciencia plena de los riesgos. En entornos de producción o públicos, lo ideal es mantener el acceso deshabilitado y trabajar mediante usuarios con sudo
.
Como señala la propia documentación oficial de Ubuntu, “el acceso remoto como root es innecesario en la mayoría de los casos y representa una amenaza significativa si no se protege adecuadamente”.