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 и хранить на внешнем носителе. 
 
- Автоматизировать: