4 способа сбросить пароль root на хосте VMWare ESXi

Если вы забыли или потеряли пароль root от хоста ESXi, вы можете потерять контроль над ним и не сможете зайти на его консоль через SSH при наличии проблем с операционной системой или необходимости выполнить диагностику хоста. В этой статье я покажу 4 разных способа сбросить забытый пароль root на хосте VMware ESXi версии 6.7. Способ сброса пароля применим и к версиям ESXi 6.x и 5.x.

С точки зрения VMWare, единственный правильный способ сброса пароля root на ESXi хосте – переустановка ОС (но это ведет к потере конфигурации и данных на локальных дисках). Все другие способы могут привести к отказу хоста, или переводу систему в неподдерживаемую конфигурацию, т.к. в ESXi отсутствует сервисная консоль и вы не можете сбросить пароль через однопользовательский режим как в Linux.

Допустим, вы забыли пароль root от одного из своих хостов ESXi. При этом возможны 2 сценария:

  1. ваш хост добавлен в vCenter и вы все еще может управляться им
  2. вы забыли пароль от отдельностоящего хоста ESXi (или от бесплатной редакции VMware Hypervisor)

Сброс пароля ESXi с помощью VMware Host Profile

Большинство хостов ESXi в крупных компаниях управляются через vCenter Server. Даже если вы забыли пароль root, vCenter без проблем может управлять настройками хоста, т.к. вы уже привязали хост к vCenter и пароль root вам просто не нужен. Если же вы выведете хост из vCenter (лучше этого не делать) и попробуете добавить его снова, вам понадобится указать root пароль. Поэтому, пока ваш хост управляется vCenter, вы можете сбросить пароль root с помощью профиля хоста VMware (Host Profile).

Host profile – это набор заданных вами параметров ESXi, которые можно применить к любому хосту для его быстрой настройки. Обычно профиль хоста создается после настройки типового хоста ESXi и экспорта его конфигурации в Host profile. Данный профиль администратор может применить к любому другому хосту.

  1. Запустите vSphere Web Client и авторизуйтесь в vCenter.
  2. На домашней странице выберите Host Profile
  3. Нажмите на кнопку Extract Profile from a host, чтобы извлечь профиль хоста ESXi с известным вам паролем root.

4. Выберите хост ESXi и нажмите Next.

5. Укажите имя профиля (желательно указать и его описание).

6. После того, как новый профиль создан, отредактируйте его.

7. С помощью встроенного поиска найдите параметр с именем root (находится в секции Security and Services -> Security Settings -> Security -> User Configuration -> Root). Выберите опцию “Fixed Password Configuration” и укажите новый пароль root.

8. Все остальные настройки в профиле нужно отключить. Нажмите Finish.

9. Теперь нужно привязать этот профиль к вашему ESXi хосту, на котором нужно сбросить пароль. В меню Actions выберите Attach/Detach Hosts.

10. Выберите ваш ESXi хост (на котором нужно сбросить пароль) и нажмите кнопку Attach.

11. Перейдите на вкладку Host profile -> Monitor -> Compliance и нажмите кнопку Remediate.

12. После выполнения проверки новые настройки применятся к хосту и у него появится статус Complaint (т.е. конфигурация хоста соответствует назначенному профилю). В предыдущих версиях ESXi чтобы применить профиль к хосту, его необходимо переводить в режим обслуживания (Maintenance Mode), также потребуется перезагрузка хоста.

13. На этом все, пароль root на хосте был изменен. Не забудьте отвязать профиль от хоста.

Сброс пароля root с помощью Active Directory и vCenter

Также вы можете сбросить пароль root на хосте ESXi, если с помощью vCenter добавить ваш хост в домен Active Directory. После того, как вы включите ESXi в домен, вы сможете авторизоваться на нем с помощью доменной учетной записи и сбросить пароль локального пользователя root.

Запустите оснастку Active Directory Users and Computers и создайте новую доменную группу с именем ESX Admins (именно такое имя группы). Добавьте в группу учетку пользователя, пароль которого вам известен.

Теперь нужно добавить хост в домен. В консоли vCenter выберите хост, перейдите в раздел Configure -> Authentication Services -> Join Domain. Укажите имя домена и учетную запись с правами добавлять компьютеры в домен.

Теперь откройте веб интерфейс вашего хоста ESXi и авторизуйтесь на нем под учетной записью, которую вы добавили в группу ESX admins (имя учетной записи нужно задать в формате [email protected] или Domain\User).

После авторизации перейдите в раздел Host -> Manage -> Security & users -> Users и сбросьте пароль локального пользователя root.

После этого можете исключить ESXi из домена (Leave Domain).

Чтобы применить изменения, перезагрузите хост.

Сброс пароля root на отдельном хосте ESXi

В этом разделе мы покажем, как сбросить пароль root на отдельно стоящем ESXi сервере, который не добавлен в vCenter. Этот способ сброса пароля потребует перезагрузки хоста и выключения всех запущенных на нем виртуальных машин. Для сброса на понадобиться загрузочный диск, например, iso образ Ubuntu GNOME. Данный образ нужно записать на USB флешку, которую можно сделать загрузочной с помощью утилиты Rufus.

Затем нужно загрузить ESXi с этой флешки, подключить локальное хранилище с хоста ESXi, распаковать архив и изменить файл с паролями. Потом нужно заменить файл, перезагрузить хост и попробовать авторизоваться на ESXi под учетной root с пустым паролем.

Сброс пароля ESXi в файле shadow

Из соображений безопасности хост ESXi хранит пароль в зашифрованном виде в shadow. Нам нужно изменить пароль root в этом файле. Среди всех разделов на хосте ESXi нам нужен только /dev/sda5 (/bootbank). Именно в этом разделе диска хранится образ и конфигурация ОС.

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

# sudo su

Выведем список дисков:

# fdisk –l | grep /dev/sda*

Нам нужен раздел /dev/sda5 размером 250 Мб. Создайте точку монтирования:

# mkdir /mnt/sda5

Создайте временны каталог:

# mkdir /temp

Смонтируйте раздел /dev/sda5:

# mount /dev/sda5 /mnt/sda5

Нам нужен архивный файл с именем state.tgz (внутри него находится нужный нам файл local.tgz):

# ls -l /mnt/sda5/state.tgz

Распакуйте файлы state.tgz и local.tgz:

# tar -xf /mnt/sda5/state.tgz –C /temp/

# tar -xf /temp/local.tgz –C /temp/

Файлы архивов теперь можно удалить:

# rm /temp/.tgz

Во временном каталоге должен появиться файл shadow. Откройте файл с помощью любого текстового редактора:

# vi /temp/etc/shadow

Вот как выглядит содержимое файлы shadow. Как вы видите, в нем содержаться все локальные учетные записи и их пароли (зашифрованные):

Чтобы сбросить пароль root на пустой, достаточно удалить все между двумя первыми двоеточиями и сохраните файл.

Перейдите в каталог: # cd /temp

Теперь нужно упаковать файл shadow в обратном порядке:

# tar -czf local.tgz etc

# tar -czf state.tgz local.tgz

Теперь переместите новый архив в оригинальный каталог с образом ESXi:

# mv state.tgz /mnt/sda5/

Отмонтируйте раздел:

# umount /mnt/sda5

Теперь можно перезагрузить хост:

# reboot

При загрузке ESXi распакует архив local.tgz и скопирует файлы конфигурации (в том числе shadow) в каталог /etc/. Попробуйте авторизоваться на сервере через DCUI без пароля. Система укажет, что пароль root не задан и в целях безопасности его нужно изменить.

Выберите пункт меню Configure Password и укажите новый пароль.

Замена пароля в файле shadow

Как один из вариантов рассмотренного выше способа сброса пароля на хосте ESXi, вы можете не сбрасывать, а заменить файл shadow файлом с другого хоста ESXi (с известным паролем). Вы можете с помощью WinSCP скопировать файл shadow с другого хоста ESXi на свою загрузочную USB флешку.

Загрузите ваш ESXi хост со своего загрузочного USB диска (в моем примере это Ubuntu GNOME). И выполните следующие команды:

# sudo su

Выведем список дисков:

# fdisk –l | grep sd

Создадим две временные папки.

# mkdir /mnt/sda5

# mkdir /mnt/sdb1

Смонтируйте раздел с образом ESXi и ваш USB диск, на котором находится скопированный с другого хоста файл shadow:

# mount /dev/sda5 /mnt/sda5

# mount /dev/sdb1 /mnt/sdb1

Создайте временные каталоги:

# mkdir /temp

# mkdir /mnt/sdb1/save

Найдите нужный файл в архиве:

# ls -l /mnt/sda5/state.tgz

Скопируйте архив:

# cp /mnt/sda5/state.tgz /mnt/sdb1/save

Распакуйте архивы:

# tar -xf /mnt/sda5/state.tgz –C /temp/

# tar -xf /temp/local.tgz –C /temp/

Убедитесь, что вы распаковали каталог /etc.

# ls –l /temp

Удалите архив local.tgz.

# rm /temp/local.tgz

Замените оригинальный файл shadow на тот, который вы скопировали с другого хоста:

# cp /mnt/sdb1/shadow /temp/etc

Можете посмотреть содержимое файла shadow.

# vi /temp/etc/shadow

Удалите лишние учетные записи, которые вам не нужны (кроме стандартных учеток). В моем примере я удалю пользователя Test. Сохраните файл shadow.

# cd /temp

Упакуем содержимое каталога /etc.

# tar -czf local.tgz etc

# tar -czf state.tgz local.tgz

Скопируйте архив state.tgz на раздел с образом ESXi:

# mv state.tgz /mnt/sda5/

Отмонтируйте раздел sda5:

# umount /mnt/sda5

Перезагрузите хост:

# reboot

Вот и все, теперь мы можете авторизоваться на хосте ESXi под известным паролем.

Источник

Добавить комментарий