Content
Сброс пароля пользователя root в ESXi 7.x
Иногда по тем или иным причинам вы не можете авторизоваться в консоли управления ESXi, поскольку у вас нет актуального пароля. Это может произойти из-за взлома системы, сбоя системы, потери пароля или если вы унаследовали ESXi без документации или надлежащего административного контроля. Это неприятная ситуация, и с ней придется что-то делать. Может быть, не сразу, но когда что-то пойдет не так и вам придется вмешиваться в работу системы, которая до сих пор функционировала нормально. Эта инструкция написана именно для таких случаев.
Резервное копирование
Перед выполнением действий необходимо создать резервные копии конфигурации, виртуальных машин, сетевых настроек и лицензии.
- Конфигурация хоста:
vim-cmd hostsvc/firmware/backup_config
- Команда создаёт резервную копию конфигурации хоста. После выполнения команды в выводе будет указан URL (например,
http://<ESXI_IP>/downloads/<backup_file>.tgz
). - Скачайте файл по этому URL через веб-браузер или утилиту, например
wget
илиcurl
, и сохраните его на внешнем носителе:wget http://<ESXI_IP>/downloads/<backup_file>.tgz -O /path/to/backup/<backup_file>.tgz
- Для восстановления конфигурации используйте веб-интерфейс vSphere Client:
- Перейдите в "Host" → "Configure" → "System" → "Backup/Restore".
- Выберите "Restore" и загрузите ранее сохранённый файл
.tgz
.
Альтернативно, для синхронизации текущей конфигурации с сохранённой на диске используйте:
vim-cmd hostsvc/firmware/sync_config
- Требуется действующий пароль root. При его отсутствии используйте доступ через vCenter или SSH-ключи.
- Команда создаёт резервную копию конфигурации хоста. После выполнения команды в выводе будет указан URL (например,
- Виртуальные машины:
ovftool vi://root@[ESXI_IP]/[VM_NAME] /path/to/backup/[VM_NAME].ova
- Требуется утилита
ovftool
, установленная на административной машине (Windows, macOS или Linux). Скачать утилиту можно с сайта VMware Customer Connect. - Убедитесь, что на административной машине настроен доступ к хосту ESXi, и используйте действующий пароль root для выполнения команды.
- Сохраните файл
.ova
на внешнем носителе.
- Требуется утилита
- Сетевые настройки:
esxcli network ip interface list > network_config.txt
Сохранить вывод в файл.
- Лицензия ESXi:
vim-cmd vimsvc/license --show
Резервные копии хранить на внешнем носителе, не подключенном к хосту.
Определение типа инфраструктуры
Для выбора оптимального метода сброса нужно определить тип хоста:
- Управляется vCenter: В веб-интерфейсе ESXi в разделе "Summary" указан vCenter Server.
- Автономный: Управление осуществляется напрямую, без vCenter.
Метод 1: Хост, управляемый vCenter (Host Profiles)
Метод использует Host Profiles для хостов, подключенных к vCenter. Не требует перезагрузки. Поддерживается VMware.
Требования
- Лицензия VMware vSphere Enterprise Plus.
- Доступ к vCenter Server.
- Другой ESXi хост с известным паролем root и идентичной версией ESXi (например, 7.0 Update 3c).
- Если используется лицензия Standard или ниже, используйте Метод 2 (переустановка) или Метод 3 (Nested ESXi).
Шаги
- Войти в vSphere Client (HTML5).
- Перейти в раздел "Host Profiles":
- Выбрать в главном меню "Menu" → "Host Profiles" или перейти через "Inventory" → "Hosts and Clusters" → "Host Profiles" (в зависимости от версии vSphere).
- Извлечь профиль:
- Выбрать хост с известным паролем.
- Нажать "Extract Profile from Host".
- Задать имя профиля, например,
Password_Reset_Profile
. - Дождаться завершения.
- Отредактировать профиль:
- Выбрать профиль, нажать "Edit Settings".
- Перейти в "Security Configuration" → "Authentication Configuration".
- В разделе "Local User Accounts" выбрать учетную запись
root
. - Установить новый пароль (не менее 8 символов, включая заглавные буквы, цифры, специальные символы).
- Сохранить.
- Подготовить целевой хост:
- Выбрать хост с забытым паролем.
- Перевести в режим обслуживания: правый клик → "Enter Maintenance Mode".
- Выбрать "Move powered off and suspended virtual machines to other hosts", если применимо.
- При отсутствии DRS или vMotion выключить виртуальные машины.
- Дождаться завершения.
- Применить профиль:
- В разделе "Host Profiles" выбрать профиль.
- Нажать "Attach/Detach Hosts and Clusters", выбрать хост.
- Нажать "Attach", затем "Remediate".
- Подтвердить изменения, дождаться завершения (займет минут десять).
- Проверить:
- Выйти из режима обслуживания: правый клик → "Exit Maintenance Mode".
- Войти с новым паролем через веб-интерфейс или SSH.
- Проверить виртуальные машины:
vim-cmd vmsvc/getallvms
Примечания
- Версия ESXi эталонного хоста должна совпадать с целевым.
- При несовместимости конфигураций возможны ошибки. Проверить журналы vCenter.
Риски
- Минимальны при соблюдении инструкции.
- Возможны сбои из-за несовместимости конфигураций.
Метод 2: Автономный хост — Переустановка
Для автономных хостов применяется переустановка ESXi. Метод приводит к потере конфигурации без резервных копий.
Шаги
- Подготовка:
- Загрузить ESXi с VMware Customer Connect.
- Создать загрузочный USB с помощью Rufus, Ventoy или:
sudo dd if=/path/to/esxi.iso of=/dev/sdX bs=4M status=progress && sync
Убедиться, что
/dev/sdX
— правильное USB-устройство (проверить черезlsblk
илиfdisk -l
). - Выполнить резервное копирование (см. раздел "Резервное копирование").
- Переустановка:
- Загрузиться с установочного носителя.
- Выбрать диск, подтвердить перезапись.
- Установить новый пароль root (советую не менее 8 символов).
- Дождаться завершения установки (около 15 минут).
- Восстановление:
- Настроить сеть:
esxcli network ip interface ipv4 set -i vmk0 -I [IP] -N [NETMASK] -t static esxcli network ip route ipv4 add -g [GATEWAY] -n default esxcli network ip interface set -e false -i vmk0; esxcli network ip interface set -e true -i vmk0
Если хост использовал vSphere Distributed Switch (vDS), восстановить vDS через vCenter или настроить vSphere Standard Switch (vSS).
- Подключить хранилища:
esxcli storage core adapter rescan --all
Для монтирования всех доступных VMFS томов использовать:
esxcli storage filesystem automount
Если автоматическое монтирование не сработало, проверить доступные тома и смонтировать вручную:
esxcli storage filesystem list esxcli storage filesystem mount --volume-label=[VOLUME_LABEL]
Замените
[VOLUME_LABEL]
на имя тома, полученное из командыlist
. - Импортировать виртуальные машины:
ovftool /path/to/backup/[VM_NAME].ova vi://root@[ESXI_IP]/
Убедитесь, что
ovftool
выполняется на административной машине с доступом к хосту. - Восстановить лицензию:
vim-cmd vimsvc/license --set [LICENSE_KEY] --label="ESXi License"
Параметр
--label
необязателен, но рекомендуется для идентификации лицензии в интерфейсе vSphere.
- Настроить сеть:
Риски
- Потеря конфигурации и виртуальных машин без резервных копий.
- Требуется повторная настройка сети и хранилищ.
Метод 3: Автономный хост — Альтернативный метод
Для автономных хостов, где переустановка невозможна, используется метод с Nested ESXi и Linux VM для изменения конфигурационных файлов. Метод сложный, не поддерживается VMware, предназначен для опытных администраторов.
Требования
- Nested ESXi VM, соответствующая версии и сборке хоста (например, 7.0 Update 3c). Доступна на VMware Flings.
- Linux VM (например, Ubuntu 20.04+).
- Физический доступ к серверу.
- Опыт работы с Linux.
Шаги
- Развернуть Nested ESXi и Linux VM.
- Загрузиться с Linux LiveCD, смонтировать разделы ESXi, скопировать файлы
state.tgz
иlocal.tgz
. - Передать файлы на Nested ESXi, расшифровать с помощью
/usr/lib/vmware/crypto-util
, изменить хэш пароля в базе SQLite. - Упаковать и зашифровать файлы, вернуть на хост, перезагрузить.
Риски
- Если хост использует Trusted Platform Module (TPM), файлы конфигурации привязаны к TPM-ключам. Замена файлов без ключей может привести к неработоспособности. Проверить:
esxcli system settings encryption get
Если
Encryption Mode
указывает TPM, метод может быть неприменим. - Неправильные изменения могут сбросить сетевые настройки, хранилища или виртуальные машины.
- Nested ESXi должна точно соответствовать версии хоста.
- В ESXi 8.x метод может не работать из-за изменений в шифровании.
Альтернатива
Если SSH включен, добавить SSH-ключ:
- Сгенерировать ключ:
ssh-keygen -t rsa -b 4096
- Добавить ключ в
/etc/ssh/keys-root/authorized_keys
.
Профилактические меры
- Документирование:
- Хранить пароли в менеджере паролей, например, HashiCorp Vault.
- Поддерживать актуальность документации.
- SSH-доступ:
- Включить SSH для текущей сессии:
esxcli system services enable --id=TSM-SSH esxcli system services start --id=TSM-SSH
- Для автоматического запуска SSH при загрузке:
esxcli system services set --policy=on --id=TSM-SSH
- Отключить таймаут ESXi Shell:
esxcli system settings advanced set -o /UserVars/ESXiShellTimeOut -i 0
- Альтернативно, настроить через vSphere Client:
- Выбрать хост → "Configure" → "Services".
- Найти "TSM-SSH", выбрать "Options" → "Start and stop with host".
- Настроить SSH-ключи:
- Сгенерировать ключ на клиентской машине:
ssh-keygen -t rsa -b 4096
- Скопировать публичный ключ (например,
~/.ssh/id_rsa.pub
) на хост:scp ~/.ssh/id_rsa.pub root@[ESXI_IP]:/etc/ssh/keys-root/authorized_keys
- Установить права доступа:
ssh root@[ESXI_IP] "chmod 644 /etc/ssh/keys-root/authorized_keys"
- Сгенерировать ключ на клиентской машине:
- Хранить ключи в
/etc/ssh/keys-root/authorized_keys
.
- Включить SSH для текущей сессии:
- Active Directory:
- Присоединить хост к домену через CLI:
esxcli system authentication activedirectory join -d [DOMAIN] -u [USERNAME] -p [PASSWORD]
Указать [DOMAIN] (например, example.com), [USERNAME] (пользователь с правами на присоединение) и [PASSWORD].
- Альтернативно, использовать vSphere Client:
- Выбрать хост → "Configure" → "Authentication Services".
- Нажать "Join Domain", указать домен и учетные данные.
- Назначить права доменной группе через vSphere Client:
- Выбрать хост или vCenter.
- Перейти в "Permissions".
- Нажать "Add", выбрать группу (например,
DOMAIN\GroupName
), назначить роль (например, "Administrator").
- Для автоматизации использовать PowerCLI:
New-VIPermission -Entity (Get-VMHost) -Principal "DOMAIN\GroupName" -Role Admin
- Присоединить хост к домену через CLI:
- Мониторинг:
- Использовать vRealize Operations или Zabbix.
- Настроить уведомления о сбоях.
- Резервное копирование:
- Автоматизировать:
vim-cmd hostsvc/firmware/backup_config
Скачивать файл по URL и хранить на внешнем носителе.
- Автоматизировать: