ВОЙТИ
    opened image

    Если Вы хотите просто изменить пароль к пользователю root для доступа в панель VMware ESXi, то это можно сделать несколькими способами.

    К примеру, если знаете текущий пароль, то можно просто изменить в самой панели управления ESXi,

    а если забыли пароль, но у Вас имеется подключенная панель управления vCenter, то пароль на данный хост можно изменить в веб-панели vCenter.

    В более ранних версиях (до 4.x) можно было изменить пароль через GRUB загрузчик.

     

    Это все понятно, но что делать в случае, если у Вас установлен лишь автономный гипервизор VMware ESXi на выделенном сервере и Вы забыли пароль к пользователю root?

    Ведь без возможности войти в панель управления под администрирующим пользователем,

    Вы теряете возможность управления Вашими виртуальными машинами, дисками, сетью и всем остальным, а инструментов для восстановления пароля VMware в такой ситуации не предлагает.

     

    На оффициальной форуме сайта VMware написано, что в таком случае нужно полностью переустанавливать сервер и гипервизор, что явно не является идеальным решением данной задачи.

    К счастью мы можем воспользоваться "хаком", который я опишу ниже, подобная операция может быть довольно опасной, поэтому делайте данную операцию на свой страх и риск.

    Также примите во внимание, что для выполнения операции нужно будет выключить сервер, что приведёт к остановке работы всех машин и служб на ней на время проведения.

     

    Данное решение подходит для ESXi версий 5-6 и скорее всего для 7-8 тоже, я буду использовать версию 6.7 в качестве примера.

     

    1. Для начала нужно будет подключить LiveCD ISO к выделенному серверу.

    Прилагаю подробную инструкцию, как подключить свой образ ISO к выделенному серверу.

    https://zomro.com/rus/blog/faq/234-kak-podkljuchit-svoj-obraz-iso-k-vydelennomu-serveru

     

    Я буду использовать SystemRescueCD, который можно скачать здесь:

    https://www.system-rescue.org/Download/

     

    2. Теперь нужно найти файл на диске сервера, в котором хранится пароль пользователя root.

    После того, как диск подключен, мы перезагрузили сервер и загрузились с LiveCD, нужно войти в консоль или терминал, в зависимости от Вашего выбора LiveCD.

    В SystemRescueCD я выбрал первую опцию для загрузки Boot SystemRescueCD with default options,

    после чего через некоторое время загрузилась консоль, в которой можно вводить команды:

     

     

    3. Нужно найти раздел диска, на котором хранится конфигурация гипервизора и его загрузочные модули, для этого введём команду:

    lsblk -lp

    Вы должны увидеть подобную картину как на скриншоте ниже:

     

    Таким разделом является раздел /dev/sda5 (Boot-bank 0)

    Более подробно о структуре хранения данных гипервизора можно прочитать здесь:

    https://docs.vmware.com/en/VMware-vSphere/7.0/com.vmware.esxi.install.doc/GUID-474D003B-C6FB-465D-BC1B-5FD30F8E2209.html


     

    4. Тепер примонтируем данный раздел в папку /mnt нашего LiveCD командой:

    mount /dev/sda5 /mnt

     

    5. Проверим, есть ли на этом разделе файл state.tgz

    ls /mnt/state.tgz

    Должно показать, что такой файл найден:

     

    Тепер создадим временную папку, где будем производить распаковку и редактирование.

    mkdir /new

     

    Переходим в новосозданную папку:

    cd /new

     

    Распакуем архив в нее:

    tar -xf /mnt/state.tgz -C /new/

     

    Теперь в папке /new должен появиться еще один архив, распакуем и его:

    tar -xf local.tgz

     

    Если всё сделано правильно, то в папке должна быть папка etc и архив local.tgz как на скриншоте.

     

    Архив local.tgz нам уже не нужен, его нужно удалить:

    rm local.tgz

     

    6. Тепер в папке etc ищем файл shadow и открываем его с помощью текстового редактора vim:

    vi etc/shadow

     

    О том , как пользоваться редактором vim, у нас есть прекрасная статья здесь:

    https://zomro.com/rus/blog/faq/204-redaktor-vim


     

    Внутри файла дожно быть что-то подобное как на скриншоте ниже, как видно напротив пользователя root есть длинный странный код,

    это и есть наш пароль, он выглядит так, потому что он хранится в зашифрованном виде.

     

    Мы можем удалить данный хеш код (всё, что находится между первыми двумя двоеточиями), что приведёт к тому, что у пользователя root не будет пароля, в результате получим следующее:

     

    Если не хотите оставлять вход без пароля, то можно, к примеру, заменить данный хеш на другой:

    $6$q6uSw7nb/XO9hwSx$VDecNPTdNHdgDIKnVEMZggB0ooLzjWX22IuCAPkr06tVELOHdCiHsh.MjpSxmxqC7XTHUl4bOWTv5cPNZ0cxi0

    Это зашифрованный пароль: 1234VMesxi

    После чего сохраняем файл (в редакторе vim нужно ввести :wq)


     

    7. Теперь нам нужно запаковать это всё и вернуть архив туда, откуда мы его взяли, выполните следующие команды поочерёдно:

    cd /new
    
    tar -czf local.tgz etc
    
    tar -czf state.tgz local.tgz
    
    mv state.tgz /mnt/
    
    chmod 755 /mnt/state.tgz

     

    8. Теперь отсоединяем раздел диска /dev/sda5 командой:

    umount /mnt

     

    9. Перезагружаем систему, отключаем LiveCD от сервера и загружаемся с диска сервера.

    reboot

     

    10. При входе в панель ESXi через консоль, нажимаем кнопку F2 и теперь должно пустить без пароля, если ранее Вы удалили хеш в файле.

    Если Вы заменили пароль на хеш, который написан выше, то нужно ввести пароль: 1234VMesxi


     

    Далее ОБЯЗАТЕЛЬНО меняем пароль на новый! Для этого выбираем опцию Configure Password:

     

    Оставляем поле Old Password пустым или вводим пароль 1234VMesxi, в зависимости от того, что было сделано ранее и затем вводим 2 раза новый пароль:

     

    Пароль успешно изменен на новый и теперь можно входить в панель через веб-браузер.