Cómo cambiar la contraseña de root en cPanel mediante SSH
Introducción: ¿Por qué cambiar la contraseña root desde SSH?
Cuando gestionas un servidor Linux con cPanel, la seguridad de la cuenta root es tu primera línea de defensa. Esta cuenta tiene acceso total al sistema, por lo que una contraseña débil o comprometida es una invitación abierta a los atacantes. Cambiar la contraseña root mediante cPanel SSH es una de las tareas más importantes que puedes realizar, ya sea por política de empresa, por sospecha de filtración o simplemente como mantenimiento preventivo.
Aunque cPanel ofrece una interfaz gráfica (WHM) para cambiar la contraseña, hacerlo por SSH te da control absoluto y funciona incluso si el panel tiene problemas. Además, es la opción preferida por administradores que trabajan con servidores remotos y necesitan rapidez.
En esta guía paso a paso, te explicaré cómo hacerlo de forma segura, incluso si nunca has usado la terminal antes. No necesitas ser un experto en Linux, solo seguir las instrucciones al pie de la letra.
Requisitos previos antes de cambiar la contraseña root
Antes de lanzarte a ejecutar comandos, asegúrate de tener todo listo. No querrás quedarte a medias y bloquear tu propio acceso.
Acceso SSH al servidor
Necesitas un cliente SSH. Si usas Windows, programas como PuTTY o el terminal integrado de Windows 10/11 son perfectos. En Mac o Linux, simplemente abre la terminal.
Datos de conexión
Ten a mano la IP pública de tu servidor, el puerto SSH (normalmente 22, aunque puede ser personalizado) y la contraseña actual de root (o una clave privada si usas autenticación por llaves).
Permisos de root
Este proceso solo funciona si ya tienes acceso root al servidor. Si solo tienes un usuario con privilegios sudo, puedes ejecutar sudo su - para escalar privilegios antes de continuar.
Paso 1: Conectarse al servidor por SSH
Abre tu terminal o PuTTY y ejecuta el siguiente comando, reemplazando IP_DE_TU_SERVIDOR con la dirección real:
ssh root@IP_DE_TU_SERVIDOR
Si usas un puerto personalizado, añade -p PUERTO al final. Por ejemplo:
ssh root@192.168.1.100 -p 2222
Te pedirá la contraseña actual. Escríbela (no verás nada mientras tecleas, es normal) y pulsa Enter.
[INFO] Si es la primera vez que te conectas, verás un mensaje sobre la huella del servidor. Escribe yes y continúa.
Paso 2: El comando passwd, tu mejor aliado
Una vez dentro, el proceso es sorprendentemente simple. Solo necesitas un comando: passwd. Este comando es nativo de Linux y sirve para cambiar contraseñas de usuarios del sistema.
Para cambiar la contraseña de root, escribe:
passwd
Al ejecutarlo, el sistema te pedirá:
- Nueva contraseña: Escribe una contraseña robusta (más abajo te doy consejos).
- Vuelve a escribir la nueva contraseña: Para confirmar que no hubo errores de tipeo.
Si todo sale bien, verás el mensaje: passwd: password updated successfully.
¿Y si quiero cambiar la contraseña de otro usuario?
También puedes especificar el usuario directamente. Por ejemplo, para cambiar la contraseña de un usuario llamado admin:
passwd admin
Pero para root, el comando sin argumentos es suficiente.
Paso 3: Elegir una contraseña segura (y no morir en el intento)
Aquí es donde la mayoría falla. Elegir Admin123 o root2024 es como dejar la puerta de tu casa abierta. Sigue estas reglas:
- Longitud mínima de 12 caracteres.
- Combina mayúsculas, minúsculas, números y símbolos (como
!@#$%^&*). - Evita palabras del diccionario o secuencias lógicas (
123456,qwerty, fechas de nacimiento). - No uses la misma contraseña que en otros servicios.
Un truco: usa una frase larga y conviértela en contraseña. Por ejemplo: MiPerro_Chiquito_2024! es fácil de recordar y muy difícil de crackear.
[WARNING] No uses caracteres especiales que puedan causar problemas en el shell, como $ o \, a menos que los escapes correctamente. Lo más seguro es usar símbolos estándar como !, @, #, %.
Paso 4: Verificar que el cambio se aplicó correctamente
Después de ejecutar passwd, es buena práctica verificar que todo está en orden. Puedes hacerlo de dos formas:
Opción A: Intentar hacer login de nuevo
Cierra la sesión actual escribiendo exit y vuelve a conectarte por SSH con la nueva contraseña. Si funciona, perfecto.
Opción B: Revisar el archivo de contraseñas
Ejecuta:
cat /etc/shadow | grep root
Verás una línea larga con campos separados por dos puntos. El segundo campo será un hash (una cadena de caracteres extraña). Si el hash cambió respecto al anterior, el cambio se aplicó.
[INFO] Nunca compartas el contenido de /etc/shadow con nadie. Contiene los hashes de todas las contraseñas del sistema.
Paso 5: Actualizar la contraseña en cPanel y WHM
Aunque ya cambiaste la contraseña root por SSH, es posible que cPanel tenga su propia caché de autenticación. Para evitar conflictos, es recomendable sincronizarla.
Desde WHM (WebHost Manager)
- Accede a
https://IP_DE_TU_SERVIDOR:2087con la nueva contraseña. - Ve a "Change Password" en el menú de la izquierda.
- Introduce la nueva contraseña (la misma que pusiste por SSH) y confirma.
- Guarda los cambios.
Desde la terminal (comando alternativo)
Si prefieres hacerlo todo por SSH, puedes usar el script de cPanel:
/scripts/passwd root
Este comando actualiza la contraseña de root y sincroniza los archivos de configuración de cPanel automáticamente. Es la opción más limpia.
Errores comunes y cómo solucionarlos
"passwd: Authentication token manipulation error"
Este error suele aparecer por permisos incorrectos en el archivo /etc/shadow o porque el sistema de archivos está montado en modo lectura. Solución:
mount -o remount,rw /
Luego vuelve a intentar passwd.
"Password has already expired"
Si el sistema te dice que la contraseña ha caducado y no te deja continuar, ejecuta:
chage -M 99999 root
Esto elimina la caducidad forzada. Luego cambia la contraseña con passwd.
No recuerdo la contraseña actual de SSH
Si no puedes entrar, necesitarás acceso físico al servidor o un proveedor de hosting que te permita reiniciar en modo de rescate (modo single user). Esto ya es un proceso más avanzado, pero la mayoría de los proveedores ofrecen esta opción desde su panel de control.
Consejos extra para blindar tu servidor
Cambiar la contraseña root es solo el primer paso. Aquí tienes más buenas prácticas para mantener tu servidor Linux a salvo:
1. Desactiva el login root por SSH
En lugar de eliminar la cuenta root, restringe su acceso remoto. Crea un usuario con privilegios sudo y edita el archivo /etc/ssh/sshd_config:
PermitRootLogin no
Reinicia el servicio SSH con systemctl restart sshd.
2. Usa autenticación por clave pública
Genera un par de llaves SSH y desactiva la autenticación por contraseña. Es mucho más seguro que cualquier contraseña por muy robusta que sea.
3. Configura fail2ban
Este servicio bloquea automáticamente las IPs que intentan múltiples conexiones fallidas. Se instala fácilmente:
apt install fail2ban
4. Cambia el puerto SSH por defecto
Edita sshd_config y cambia el puerto 22 por uno alto (ej. 22022). Reduce drásticamente los ataques automatizados.
5. Realiza copias de seguridad periódicas
Aunque cambies la contraseña, un fallo de disco o un error humano pueden dejarte sin servidor. Automatiza backups con herramientas como rsync o el propio sistema de copias de cPanel.
Preguntas frecuentes sobre el cambio de contraseña root
¿Puedo cambiar la contraseña root desde WHM en lugar de SSH?
Sí, puedes ir a WHM > "Change Password". Sin embargo, usar cPanel SSH es más fiable si el panel está caído o si prefieres la línea de comandos.
¿Cuánto tarda en propagarse el cambio?
Es inmediato. En el momento en que ejecutas passwd, la nueva contraseña es válida para el sistema. No hay tiempo de espera.
¿Afecta esto a las cuentas de hosting de mis clientes?
No. Las contraseñas de las cuentas de cPanel son independientes de la contraseña root. Este cambio solo afecta al acceso administrativo del servidor.
¿Qué hago si olvido la contraseña root después de cambiarla?
Necesitarás acceso de recuperación. Contacta con tu proveedor de hosting o usa el panel de control del VPS para montar el disco en modo rescate y cambiar la contraseña manualmente.
¿Es seguro guardar la contraseña en un gestor de contraseñas?
Totalmente recomendable. Usa herramientas como Bitwarden, 1Password o KeePass para almacenar contraseñas largas sin tener que memorizarlas.
¿Puedo programar cambios automáticos de contraseña root?
Sí, puedes crear un script con cron que ejecute echo "nueva_contraseña" | passwd root cada cierto tiempo. Sin embargo, es más seguro usar herramientas de gestión de secretos como Ansible o HashiCorp Vault.
Conclusión: La seguridad root es un hábito, no un evento
Cambiar la contraseña root mediante cPanel SSH es un proceso que te llevará menos de dos minutos una vez que lo dominas. Sin embargo, la verdadera seguridad no está en una contraseña perfecta, sino en mantener hábitos constantes: cambios regulares, monitoreo de logs y desactivación de accesos innecesarios.
Recuerda que cada vez que un empleado deja la empresa, que sospechas de un ataque o que simplemente ha pasado demasiado tiempo desde el último cambio, es momento de repetir este procedimiento. La terminal de Linux es tu aliada: con un solo comando passwd, tienes el poder de proteger todo tu ecosistema.
Si este tutorial te ha sido útil, compártelo con otros administradores que aún duden en usar SSH. Y no olvides: la próxima vez que veas un servidor con la contraseña root123, ya sabes qué hacer.
