Назад | Перейти на главную страницу

Сброс пароля root ESXi

Я только что унаследовал очень простую настройку виртуальной машины с парой кластерных серверов ESXi, и все в значительной степени подключено. Проблема в том, что у меня нет паролей root для серверов, и никто не знает, что они такое (пытались угадать пароль).

Насколько я понимаю, ESXi не имеет однопользовательского режима или чего-либо подобного. Какие у меня есть варианты, кроме резервного копирования виртуальных машин и уничтожения сайта?

Там являются методы сброса пароля root хоста ESXi при условии, что у вас есть физический или внеполосный доступ к серверу.

  • Я сделал это с Профили хоста путем повторного применения профиля, полученного с другого хоста, к затронутому серверу. Но у вас, скорее всего, нет лицензии на это.
  • Я также должен использовать загрузочный CD / Live CD подход (также Вот), который предполагает некоторые знания Linux и включает установку пустого пароля или известного зашифрованного пароля в теневом файле.

Что касается того, как это может случиться ... Плохая документация, злые администраторы, уволенные с работы, техник центра обработки данных, который не отключил CAPS-LOCK при создании серверов моя плохая память, и т.д, :)

Для ESXi, единственный поддерживаемый метод изменения пароля - переустановка.

Переустановка хоста ESXi - единственный поддерживаемый способ сбросить пароль на ESXi. Любой другой метод может привести к отказу хоста или неподдерживаемой конфигурации из-за сложной природы архитектуры ESXi. ESXi не имеет служебной консоли, и поэтому традиционные методы Linux для сброса пароля, такие как однопользовательский режим, не применяются.

Если у вас есть два хоста и у них есть ресурсы для его поддержки, вы можете vMotion (и / или хранилище vMotion) все серверы на одном хосте, удалить и перестроить пустой хост, добавить его обратно в кластер. Затем переместите всех гостей на восстановленный узел и удалите / восстановите оставшийся узел. Это позволит вам отремонтировать, не вызывая простоев у гостей. В зависимости от вашей инфраструктуры и количества виртуальных машин, которые необходимо переместить, восстановление двух хостов может занять меньше дня, если только у вас нет слишком большой или сложной конфигурации хоста.

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

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

  • Используйте vCenter, чтобы присоединить каждый хост к домену AD, а также настроить и настроить пользователя AD в качестве администратора хоста и разрешить аутентификацию AD. Используйте клиент vSphere для прямого подключения к хосту, используя учетные данные AD для входа. После подключения таким образом вы сможете изменить пароль для учетной записи root через клиент vSphere, подключенный непосредственно к хосту. Я использовал это в крайнем случае, и это работает.
  • Создайте профиль хоста, в котором указан пароль, и прикрепите его к хосту. Это можно сделать, но все же требуется, чтобы хост был переведен в режим обслуживания. Сам лично этим методом не пользовался.

Пароль root ESXi зашифрован и хранится в файле с именем / ect / shadow. Как только Эта статья объясняет, что вы можете удалить пароль root, выполнив следующие действия:

  1. Загрузите сервер с Ubuntu Live CD.
  2. Распакуйте state.tgz, а затем local.tgz, удалите хэш пароля внутри теневого файла и заново упакуйте архив.
  3. После этого вы можете войти на хост ESXi с учетной записью root без пароля.

Для ESXi 6 у меня работают:

# https://www.linkedin.com/pulse/reset-esxi-root-password-through-vcenter-esxcli-method-buschhaus
#First, setup $vmhosts. You can do this many ways.$vmhosts = Get-Cluster -Name ClusterWithUnknownPassword | Get-VMHost

# Just so it contains one or more VMHost objects.
# To reset all ESXi host passwords use
# $vmhosts = Get-VMHost

$NewCredential = Get-Credential -UserName "root" -Message "Enter an existing ESXi username (not vCenter), and what you want their password to be reset to."

Foreach ($vmhost in $vmhosts) {
    $esxcli = get-esxcli -vmhost $vmhost -v2 #Gain access to ESXCLI on the host.
    $esxcliargs = $esxcli.system.account.set.CreateArgs() #Get Parameter list (Arguments)
    $esxcliargs.id = $NewCredential.UserName #Specify the user to reset
    $esxcliargs.password = $NewCredential.GetNetworkCredential().Password #Specify the new password
    $esxcliargs.passwordconfirmation = $NewCredential.GetNetworkCredential().Password
    Write-Host ("Resetting password for: " + $vmhost) #Debug line so admin can see what's happening.
    $esxcli.system.account.set.Invoke($esxcliargs) #Run command, if returns "true" it was successful.
}