Hola a tod@s
En este post veremos otra forma de poder recuperar o reestablecer la password de root de un host ESXi independiente que no está administrado a través de un vCenter Server, y no es posible poder recuperar la password usando el método de VMware Host Profiles descrito en el post: Recuperar la password perdida de root de un host ESXi – Usando VMware Host Profiles.
Nota Importante
Este procedimiento solo es posible realizarlo hasta la versión de vSphere 7.0U1 ya que el archivo hasta esta versión no estaba cifrado. En vSphere 7.0 Update 2 y versiones posteriores, el archivo de configuración está cifrado.
Cuando el host ESXi se configura con un Trusted Platform Module (TPM), el TPM se usa para “Sellar” la configuración en el host, lo que proporciona una sólida garantía de seguridad, no haciendo posible ejecutar el procedimiento que veremos en este post.
Para más detalles podemos revisar la documentación de VMware que nos habla al respecto: Securing the ESXi Configuration Overview.
Recuperación usando GParted Live CD
Lo primero será descargamos GParted Live CD desde su página oficial y grabarlo en DVD-R o DVD-RW. Si lo preferimos, también podemos grabarlo en una unidad USB.
Reiniciamos nuestro servidor ESXi y arrancamos el mismo usando la imagen de GParted Live CD .
Seleccionamos la opción poder defecto y pulsamos “ENTER“.
Seleccionamos el lenguaje que más nos acomode. En mi caso lo dejare en Inglés (02).
Seleccionamos la opción “0“.
La partición que nos interesa es /dev/sda5. Cerramos la ventana.
Abrimos la terminal.
Adquirimos privilegios de root con el comando:
# sudo su
Enumeramos las particiones del disco donde está instalado el ESXi.
# ls -al /dev/sd*
# fdisk -l | grep /dev/sda
La partición que nos interesa /dev/sda5 es en la que se encuentra el archivo /etc/shadow.
Creamos la siguiente carpeta en el directorio mnt.
# mkdir /mnt/sda5
Nota: Este directorio se usará para montar la partición en la que se almacena el archivo /etc/shadow.
También necesitamos crear un directorio para almacenar archivos temporales:
# mkdir /temp
Montamos la partición sda5 en el directorio que creamos “/mnt/sda5” con el siguiente comando:
# mount /dev/sda5 /mnt/sda5
Buscamos el archivo “stage.tgz” dentro del directorio que montamos, con el comando:
# ls -l /mnt/sda5/state.tgz
Ahora, tenemos que extraer el archivo “stage.tgz” en el directorio temporal que creamos en pasos anteriores.
# tar -xf /mnt/sda5/state.tgz -C /temp/
Una vez extraído el archivo “stage.tgz” encontraremos un archivo llamado “local.tgz“, que también necesitaremos extraer.
# tar -xf /temp/local.tgz -C /temp/
Eliminamos el archivo local.tgz del directorio temporal con el comando:
# rm /temp/local.tgz
Ahora solo nos queda editar el archivo /etc/shadow con un editor de texto.
# vi /temp/etc/shadow
En este ejemplo estoy usando el editor de texto vi. Eliminamos este texto entre el primer y el segundo símbolo : (dos puntos) de la siguiente manera, tal como está marcado en la imagen siguiente.
Nos debería mostrar el siguiente aspecto: root::19646:0:99999:7:: (como ejemplo).
Guardamos los cambios pulsando la tecla ESC, seguido de : (Dos puntos) y las letras:
# wq
Volvemos al directorio /temp/ que creamos anteriormente.
# cd /temp
Tendremos que volver a empaquetar los archivo shadow con el cambio realizado con los siguientes comandos:
# tar -czf local.tgz etc
# tar -czf state.tgz local.tgz
Moveremos el archivo modificado con la contraseña de root eliminada a la partición sda5 con el comando:
# mv state.tgz /mnt/sda5
Desmontamos la partición /dev/sda5 del directorio /mnt/sda5/ que creamos en pasos anteriores:
# unmont /mnt/sda5
Reiniciamos el servidor y removemos la unidad USB o CD del equipo.
# init 6
Esperamos que vuelva a cargar normalmente nuestro ESXi.
Una vez que el servidor ESXi se haya iniciado, presionamos la tecla F2 para ver la pantalla de autenticación.
Dejamos el nombre de inicio de sesión como root y dejamos el campo de contraseña vacío. A continuación, pulsar ENTER.
Ya con acceso nuevamente a nuestro ESXi podremos volver a configurar una nueva password.
Notas Importantes
Es muy importante contar con respaldos de la configuración de nuestros hosts ESXi para evitar este tipo de problemas, más aún que como comente más arriba, desde vSphere 7.0U2 el archivo local.tgz esta encriptado. Si quieres saber cómo se realiza el Backup y la restauración de la configuración, puedes revisar el siguiente post en donde abordo este haciendo clic en el link a continuación: Cómo hacer un backup y restauración de la configuración de un host ESXi.
No podemos restablecer la contraseña root olvidada a una contraseña predeterminada de ESXi porque no hay ninguna contraseña predeterminada para el usuario root.
Espero que esta información pueda ser de ayuda, y cualquier duda o sugerencia la dejan en los comentarios. Saludos.