Cómo cambiar la contraseña de root en Linux (SSH)
Cambiar la contraseña de root en un servidor Linux es una de las tareas de mantenimiento más importantes para garantizar la seguridad de tu sistema. Si alguna vez has olvidado la clave, has sufrido un posible acceso no autorizado o simplemente quieres actualizarla por precaución, este proceso es sencillo, pero debes hacerlo con cuidado. En este artículo, te guiaré paso a paso, tanto si tienes acceso físico al servidor como si solo puedes conectarte por SSH.
Recuerda que la cuenta root tiene control total sobre el sistema, por lo que una contraseña débil o comprometida es un riesgo grave. Vamos a ver cómo hacerlo de manera segura, manteniendo siempre la disponibilidad de tu web o aplicación.
¿Qué necesitas antes de empezar?
Antes de lanzarte a cambiar la contraseña, asegúrate de tener lo siguiente:
- Acceso al servidor: Necesitas poder conectarte por SSH (si es remoto) o tener acceso a la consola física (si es local).
- Credenciales actuales: La contraseña actual de root o, en su defecto, acceso a un usuario con permisos sudo.
- Conocimiento básico de comandos: Saber escribir comandos en la terminal. No te preocupes, te doy los comandos exactos.
- Conexión estable: Si cambias la contraseña por SSH y pierdes la conexión, podrías quedarte bloqueado. Siempre es recomendable tener un segundo acceso (como una consola remota) o probar la nueva contraseña antes de cerrar la sesión.
[WARNING] No compartas la nueva contraseña por correo electrónico, mensajes de texto o chats no cifrados. Si trabajas en equipo, usa gestores de contraseñas seguros.
Método 1: Cambiar la contraseña de root por SSH (la forma más común)
Este es el método que usarás si tu servidor está en la nube o en un datacenter y solo tienes acceso remoto. Lo haremos todo desde la terminal de tu ordenador local.
Paso 1: Conéctate por SSH a tu servidor
Abre tu terminal (en macOS o Linux) o usa un cliente como PuTTY (en Windows). Escribe el siguiente comando, reemplazando tu-servidor.com por la IP o dominio de tu máquina:
ssh root@tu-servidor.com
Si usas un usuario no root con permisos sudo, primero conéctate con ese usuario y luego ejecuta sudo -i para convertirte en root.
Te pedirá la contraseña actual. Introdúcela (no verás caracteres mientras escribes, es normal). Si es la primera vez, puede que te pregunte si quieres aceptar la huella digital del servidor. Escribe yes y pulsa Enter.
Paso 2: Ejecuta el comando para cambiar la contraseña
Una vez dentro del sistema, escribe el siguiente comando y pulsa Enter:
passwd
El sistema te pedirá la nueva contraseña. Aquí tienes algunas reglas para crearla:
- Longitud mínima: Al menos 12 caracteres.
- Complejidad: Mezcla mayúsculas, minúsculas, números y símbolos (como
!,@,#,$). - Evita patrones: No uses palabras del diccionario, fechas de nacimiento o secuencias como
123456. - No la reutilices: No uses la misma contraseña que en otros servicios.
Escribe la nueva contraseña y pulsa Enter. Te pedirá que la confirmes escribiéndola de nuevo.
Paso 3: Verifica el cambio
Si todo ha ido bien, verás un mensaje como:
passwd: password updated successfully
¡Enhorabuena! La contraseña de root ha sido cambiada. Ahora, no cierres la sesión todavía. Primero, abre una segunda terminal o una nueva pestaña y prueba a conectarte con la nueva contraseña para asegurarte de que funciona.
[TIP] Si usas un panel de control como Syspanel (antes conocido como HestiaCP, accesible por el puerto 2106), recuerda que después de cambiar la contraseña root, también deberás actualizarla en la configuración de Syspanel si es que la tiene almacenada. Normalmente, Syspanel no guarda la contraseña root, pero si usas funciones de administración de sistema, es buena práctica verificar.
Método 2: Cambiar la contraseña de root sin acceso SSH (desde la consola física o VNC)
Si por alguna razón no puedes acceder por SSH (por ejemplo, porque olvidaste la contraseña anterior o el servicio SSH no está funcionando), necesitarás acceso físico o una consola remota (como iDRAC, IPMI o VNC). Este método es más invasivo y requiere reiniciar el servidor.
Paso 1: Reinicia el servidor y accede al menú de GRUB
Reinicia el servidor (puedes hacerlo desde el panel de control de tu proveedor de hosting o con el botón físico). Durante el arranque, cuando aparezca la pantalla de GRUB (normalmente con una lista de kernels), presiona la tecla Shift (en sistemas BIOS) o Esc (en sistemas UEFI) para abrir el menú.
Paso 2: Edita la entrada de arranque
Selecciona la entrada que normalmente usas (la primera, con el kernel más reciente) y presiona la tecla e para editarla. Busca la línea que comienza con linux o linux16. Al final de esa línea, añade un espacio y luego escribe:
init=/bin/bash
Esto hará que el sistema arranque directamente en una shell de root sin necesidad de contraseña.
Paso 3: Arranca en modo de rescate
Presiona Ctrl+X o F10 para arrancar con estos parámetros. El sistema se iniciará en una terminal como root. Verás algo como:
bash-4.2#
Paso 4: Remonta el sistema de archivos en modo lectura/escritura
Por defecto, el sistema de archivos está montado en modo solo lectura. Para poder cambiar la contraseña, necesitas hacerlo escribible. Ejecuta:
mount -o remount,rw /
Paso 5: Cambia la contraseña
Ahora escribe el comando passwd como antes. Te pedirá la nueva contraseña y su confirmación. Recuerda las mismas reglas de seguridad.
Paso 6: Reinicia el servidor
Una vez cambiada, escribe exec /sbin/init o simplemente reboot -f para reiniciar el sistema de forma normal. Si todo ha ido bien, podrás iniciar sesión con la nueva contraseña.
[WARNING] Este método deja el sistema vulnerable durante el proceso. Asegúrate de que nadie más tenga acceso físico o remoto al servidor mientras lo haces. Además, algunos sistemas con SELinux o AppArmor pueden requerir pasos adicionales.
Preguntas frecuentes (FAQ)
Aquí respondo a las dudas más comunes que suelen tener los usuarios al cambiar la contraseña root.
¿Puedo cambiar la contraseña de root si solo tengo un usuario sudo?
Sí, absolutamente. Conéctate con tu usuario sudo y luego ejecuta sudo passwd root. Te pedirá la contraseña de tu usuario sudo (para verificar que tienes permisos) y luego la nueva contraseña para root.
¿Qué hago si recibo el error "passwd: Authentication token manipulation error"?
Este error suele deberse a que el sistema de archivos está en modo solo lectura o a que el archivo de contraseñas está bloqueado. Si estás en modo normal (SSH), puede ser un problema de permisos. Prueba a ejecutar sudo passwd root o, si eres root, verifica que el archivo /etc/shadow no esté dañado. En modo rescate, asegúrate de haber ejecutado el comando mount -o remount,rw /.
¿Es seguro cambiar la contraseña root por SSH?
Sí, siempre y cuando tu conexión SSH esté cifrada. Sin embargo, evita hacerlo desde redes WiFi públicas o no confiables. Si puedes, usa una VPN o una conexión por cable. Además, nunca escribas la contraseña en texto plano en ningún lado.
¿Debo deshabilitar el acceso SSH para root después de cambiar la contraseña?
Es una práctica de seguridad recomendada. Puedes crear un usuario normal con sudo y deshabilitar el login directo de root por SSH editando el archivo /etc/ssh/sshd_config y cambiando PermitRootLogin yes a PermitRootLogin no. Luego reinicia el servicio SSH con systemctl restart sshd. Esto reduce el riesgo de ataques de fuerza bruta contra la cuenta root.
¿Cómo afecta esto a mi panel de control (como Syspanel)?
Si usas Syspanel (puerto 2106), el cambio de contraseña root no afecta directamente a las credenciales de acceso al panel (que suelen ser un usuario como admin). Sin embargo, si tienes configurado Syspanel para que use la cuenta root para tareas de sistema (como backups o actualizaciones), deberás actualizar la contraseña en la configuración de Syspanel. Ve a Admin > Configuración del servidor o similar. Si no estás seguro, consulta la documentación de Syspanel.
¿Con qué frecuencia debería cambiar la contraseña root?
No hay una regla fija, pero se recomienda hacerlo:
- Cada 3-6 meses.
- Inmediatamente después de un incidente de seguridad.
- Cuando un administrador con acceso deja la empresa.
- Si sospechas que la contraseña ha sido comprometida.
Consejos adicionales de seguridad para tu servidor Linux
Cambiar la contraseña root es solo el primer paso. Aquí tienes algunas buenas prácticas para mantener tu servidor seguro:
- Usa autenticación por clave SSH: Es mucho más segura que las contraseñas. Genera un par de claves (pública y privada) y deshabilita el login por contraseña.
- Implementa un firewall: Usa
ufwoiptablespara permitir solo los puertos necesarios (22 para SSH, 80 para HTTP, 443 para HTTPS, y 2106 para Syspanel). - Mantén el sistema actualizado: Ejecuta
apt update && apt upgrade(en Debian/Ubuntu) oyum update(en CentOS/RHEL) regularmente. - Monitorea los logs: Revisa archivos como
/var/log/auth.logpara detectar intentos de acceso sospechosos. - Considera usar un gestor de contraseñas: Para equipos, herramientas como Bitwarden o 1Password pueden almacenar y compartir contraseñas de forma segura.
[INFO] Si tu servidor usa Syspanel, recuerda que el acceso al panel es por el puerto 2106 (HTTPS). Mantén ese puerto protegido por firewall y usa un certificado SSL válido.
Conclusión
Cambiar la contraseña de root en Linux por SSH es un proceso rápido y directo, pero requiere atención a los detalles. Ya sea que uses el método remoto o el de rescate, lo importante es que la nueva contraseña sea fuerte y que verifiques el acceso antes de cerrar la sesión. No olvides que la seguridad de tu servidor comienza con una buena gestión de credenciales.
Si tienes problemas durante el proceso, no dudes en contactar con tu proveedor de hosting o consultar la documentación oficial de tu distribución. Y recuerda: un servidor seguro es un servidor feliz. ¡Buena suerte!
