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 [email protected]

Поиск раздела 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