EUR
european

EUR

usa

USD

Russian Ru
Ex. VAT Ex. VAT 0%

Сброс пароля пользователя root в ESXi 7.x

⚠️ ВАЖНОЕ УВЕДОМЛЕНИЕ О СОВМЕСТИМОСТИ

Этот метод сброса пароля root зависит от версии ESXi и не поддерживается во всех выпусках.

Поддерживаемые версии:

  • ESXi 6.0, 6.5, 6.7 (все сборки)
  • ESXi 7.0 (GA)
  • ESXi 7.0 Update 1
  • ESXi 7.0 Update 2

Не поддерживается:

  • ESXi 7.0 Update 3 и позднее (архив конфигурации local.tgz зашифрован и хранится как local.tgz.ve)
  • ESXi 8.0 и поздние версии

Причина: Начиная с ESXi 7.0 Update 3, VMware ввела шифрование архивов конфигурации, что предотвращает прямую модификацию файла /etc/shadow через LiveCD.

Для зашифрованных версий (7.0 U3+, 8.0+), используйте альтернативные методы:

  • Использование crypto-util на другом хосте ESXi (требует создания вложенной ВМ ESXi)
  • Восстановление через Host Profiles (требует vCenter)
  • Переустановка ESXi с сохранением хранилищ VMFS (последняя мера)

Проверьте установленную версию ESXi перед продолжением.

Иногда по той или иной причине вы можете не иметь возможности аутентифицироваться в консоли управления ESXi, поскольку у вас нет актуального пароля. Это может быть связано со взломом системы, сбоем системы, утерей пароля или если вы получили ESXi в наследство без документации или надлежащего административного контроля. Это неприятная ситуация, и с ней нужно что-то делать. Может быть, не сразу, но когда что-то пойдёт не так и вам нужно будет вмешаться в систему, которая до этого момента функционировала нормально. Эта инструкция написана именно для таких случаев.

Существует несколько способов сброса пароля. Однако тот, что описан в этой статье, является универсальным и будет работать не только для версий 7.x, но и для более ранних. Он проверен на практике и работает в большинстве случаев. Итак, начнём.

Подготовка

Сначала нам нужно загрузиться с любого Live CD. Это может быть установочный образ Ubuntu или, как в нашем случае, Finnix. Это дистрибутив на основе Debian с широкими возможностями диагностики и аварийного восстановления.

После загрузки вы увидите приглашение консоли:

В случае если ваш сервер находится удалённо и вы подключены к нему через IP-KVM, работать в этом режиме не очень удобно из-за высокого времени отклика консоли. Чтобы избежать этого, можно настроить SSH-сервер. Если это не проблема, данный шаг можно пропустить.

# задаём пароль root для live-системы passwd # запускаем ssh-сервер service ssh start

После этого можно подключиться к серверу с помощью любимого SSH-клиента или из консоли:

ssh root@1.2.3.4

Поиск раздела ESXi

Теперь нам нужно определить, на каком диске находится нужный нам раздел. Для этого сначала определим, какие диски у нас есть.

root@0:~# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS loop0 7:0 0 377.2M 1 loop /usr/lib/live/mount/rootfs/filesystem.squashfs sda 8:0 1 3.6T 0 disk └─sda1 8:1 1 3.6T 0 part sdb 8:16 1 3.6T 0 disk └─sdb1 8:17 1 3.6T 0 part sr0 11:0 1 455M 0 rom /run/live/medium zram0 252:0 0 62.8G 0 disk [SWAP] nvme1n1 259:0 0 476.9G 0 disk └─nvme1n1p1 259:2 0 476.9G 0 part nvme0n1 259:1 0 476.9G 0 disk ├─nvme0n1p1 259:3 0 4M 0 part ├─nvme0n1p2 259:4 0 4G 0 part ├─nvme0n1p3 259:5 0 469.6G 0 part ├─nvme0n1p5 259:6 0 250M 0 part ├─nvme0n1p6 259:7 0 250M 0 part ├─nvme0n1p7 259:8 0 110M 0 part ├─nvme0n1p8 259:9 0 286M 0 part └─nvme0n1p9 259:10 0 2.5G 0 part

Наш основной критерий поиска — раздел диска размером 250 МБ. Как видим, диск nvme0n1 содержит такой раздел, рассмотрим его подробнее:

fdisk -l /dev/nvme0n1

Наша цель — раздел, начинающийся с сектора 8224 и имеющий размер 250 МБ. Именно этот раздел содержит нужные нам данные.

Извлечение файлов конфигурации

Для продолжения создадим 2 директории: одну для монтирования диска, другую для данных, которые нам нужно отредактировать.

mkdir /mnt/vmware && mkdir /tmp/vmware

Монтируем найденный раздел

mount /dev/nvme0n1p5 /mnt/vmware

Внутри много всего, но нам нужен конкретный файл

Его нужно распаковать в ранее созданную директорию

tar -xf /mnt/vmware/state.tgz -C /tmp/vmware/ tar -xf /tmp/vmware/local.tgz -C /tmp/vmware/ rm /tmp/vmware/local.tgz

Теперь, если перейти в /tmp/vmware/ и просмотреть его содержимое, мы найдём там знакомую директорию etc.

Редактирование файла Shadow

Далее нам нужно отредактировать файл shadow и удалить из него хэш пароля root. Таким образом ESXi после наших манипуляций будет считать, что пароль пользователя пуст.

nano /tmp/vmware/etc/shadow

Это нужно сделать аккуратно. Необходимо удалить содержимое между первым и вторым двоеточием

и это должно выглядеть вот так

Восстановление и перезагрузка

Сохраните файл клавишей F3. На этом самая важная часть завершена. Далее нужно упаковать всё обратно и положить туда, где нашли.

cd /tmp/vmware/ tar -czf local.tgz etc tar -czf state.tgz local.tgz mv state.tgz /mnt/vmware/

Размонтируем диск ESXi и перезагружаемся.

umount /mnt/vmware/ reboot

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

Возможные проблемы и решения

  • Ошибка монтирования раздела: Убедитесь, что вы указали правильный путь к системному диску. Выполните lsblk для отображения структуры разделов.
  • Файл Shadow не найден: Проверьте правильность пути /tmp/etc/shadow. Убедитесь, что архивы state.tgz и local.tgz были успешно распакованы.
  • Пароль не сброшен: Проверьте, что изменения сохранены и файлы успешно пересобраны и перемещены на исходное место.

Вот и всё! Цель достигнута! Рекомендуем сохранить новый пароль и больше никогда его не терять!

VAT

  • Other

    Ex. VAT

    0%
  • austria

    Austria

    20%
  • Belgium

    Belgium

    21%
  • Bulgaria

    Bulgaria

    20%
  • Croatia

    Croatia

    25%
  • Cyprus

    Cyprus

    19%
  • Czech Republic

    Czech Republic

    21%
  • Denmark

    Denmark

    25%
  • Estonia

    Estonia

    22%
  • France

    France

    20%
  • Finland

    Finland

    24%
  • Germany

    Germany

    19%
  • Greece

    Greece

    24%
  • Hungary

    Hungary

    27%
  • Ireland

    Ireland

    23%
  • Italy

    Italy

    22%
  • Latvia

    Latvia

    21%
  • Lithuania

    Lithuania

    21%
  • Luxembourg

    Luxembourg

    17%
  • Malta

    Malta

    18%
  • Netherlands

    Netherlands

    21%
  • Poland

    Poland

    23%
  • Portugal

    Portugal

    23%
  • Romania

    Romania

    19%
  • Slovakia

    Slovakia

    20%
  • Slovenia

    Slovenia

    22%
  • Spain

    Spain

    21%
  • Sweden

    Sweden

    25%
  • USA

    USA

    0%
european
states
  • germany
  • Español
  • Italiano
  • Poland
  • Русский
  • Slovenski
  • Türkçe
  • ukraine
  • kingdom
  • French
  • Hrvatska
  • Other
  • Austria
  • Belgium
  • Bulgaria
  • Croatia
  • Cyprus
  • Czech Republic
  • Denmark
  • Estonia
  • Finland
  • France
  • Germany
  • Greece
  • Hungary
  • Ireland
  • Italy
  • Latvia
  • Lithuania
  • Luxembourg
  • Malta
  • Netherlands
  • Poland
  • Portugal
  • Romania
  • Slovakia
  • Slovenia
  • Spain
  • Sweden
  • USA