Как сбросить пароль vmware appliance management
Все начиналось не так все печально, как случилось уже потом. Мне необходимо было создать одну VM. Зайдя в vCenter создал VM, но при попытке запуска – произошла ошибка. Две других VM (сам vCenter и еще одна) работали без проблем. Поэтому я решил перегрузить vCenter, что собственно и сделал. Через 10 мин при попытке доступа из VmWare client в vCenter – получил ошибку, что соединение не может быть установлено. О как. Решили зайти через Web – то же самое – ошибка 503.
Печаль. При том, что решил сделать это в конце рабочего дня, к счастью vCenter не особо активно используется. И так решил разбираться, что происходит.
Консоль доступа – просит логин и пароль. Ввожу логин и пароль – получаю – Login incorrect.
Приехали…( Перепробовал все пароли (и даже тот, который 100% рабочий) – результат нулевой – не могу войти и все тут. Поэтому решаю сбросить пароль от root. Для этого, нам нужно дописать init=/bin/bash в строку загрузки ядра – ничего сложного подумал я и еще раз перегрузил vCenter. Выбираю строку – жму E – ничего не происходит. Читаем внизу текст и видим, что нужно нажать на P… Жму, упс – просит пароль – стандартный vmware из доков не походит. Гуглим еще немного и находит, что пароль может быть последним паролем от root – вбиваю и ура – можно редактировать добавляю init=/bin/bash, далее уже идет классика и описывать не буду.
Тут же проверяю место – и увы… в / и /storage/log – свободно места нет – очищаю место и перегружаюсь в надежде, что все будет ОК.
Проверяю вход в vCenter через 15 мин – результат 0. Захожу через ssh на сервер и смотрю, что из сервисов запущено, а что нет. Для этого использую команду:
В результат вижу:
vmware-invsvc (VMware Inventory Service) vmware-rbd-watchdog (VMware vSphere Auto Deploy Waiter) vmware-sps (VMware vSphere Profile-Driven Storage Service) vmware-vdcs (VMware Content Library Service) vmware-vpx-workflow (VMware vCenter Workflow Manager) vmware-vpxd (VMware vCenter Server) vmware-vsan-health (VMware VSAN Health Service) vmware-vsm (VMware vService Manager) vmware-vws (VMware System and Hardware Health Manager) vsphere-client ()
Это сервисы, которые не поднялись. Можно сказать, что почти ничего не поднялось. Пытаюсь поднять vmware-invsvc:
В ответ получаю, что сервис не может быть стартован. Изучаю логи:
В момент запуска service-control –start vmware-invsvc в логах вижу следующее:
2017-07-07T09:50:01.022945+06:00 err vmdird t@140238302082816: VmDirSendLdapResult: Request (96), Error (49), Message (), (0) socket ([3] ip_server:636<-ip_server:46241)
2017-07-07T09:50:01.022955+06:00 err vmdird t@140238302082816: Bind Request Failed ([3] ip_server:636<-ip_server:46241) error 49: Protocol version: 3, Bind DN: «cn=accountname,ou=Domain Controllers,dc=vsphere,dc=local», Method: 128
Что говорит о том, что проблема в пароле, немного погугли нашел решение:
в шелле vCenter запускаем команды:
После запуска на экране будет меню:
==================
Please select:
0. exit
1. Test LDAP connectivity
2. Force start replication cycle
3. Reset account password
4. Set log level and mask
5. Set vmdir state
==================
Выбираем 3 и указываем [email protected] , значение accountname – берем из /var/log/vmware/vmdird/vmdird-syslog.log , а именно из строк:
2017-07-07T09:50:01.022955+06:00 err vmdird t@140238302082816: Bind Request Failed ([3] ip_server:636<-ip_server:46241) error 49: Protocol version: 3, Bind DN: «cn=accountname,ou=Domain Controllers,dc=vsphere,dc=local», Method: 128
Утилита сгенерирует Вам новый пароль – записываем его.
Теперь полученный пароль необходимо прописать в системе – для этого запускаем другую утилиту:
Если вы забыли или потеряли пароль root от хоста ESXi, вы можете потерять контроль над ним и не сможете зайти на его консоль через SSH при наличии проблем с операционной системой или необходимости выполнить диагностику хоста. В этой статье я покажу 4 разных способа сбросить забытый пароль root на хосте VMware ESXi версии 6.7. Способ сброса пароля применим и к версиям ESXi 6.x и 5.x (как узнать версию ESXi).
С точки зрения VMWare, единственный правильный способ сброса пароля root на ESXi хосте – переустановка ОС (но это ведет к потере конфигурации и данных на локальных дисках). Все другие способы могут привести к отказу хоста, или переводу систему в неподдерживаемую конфигурацию, т.к. в ESXi отсутствует сервисная консоль и вы не можете сбросить пароль через однопользовательский режим как в Linux.
Допустим, вы забыли пароль root от одного из своих хостов ESXi. При этом возможны 2 сценария:
- ваш хост добавлен в vCenter и вы все еще может управляться им
- вы забыли пароль от отдельностоящего хоста ESXi (или от бесплатной редакции VMware Hypervisor)
Сброс пароля ESXi с помощью VMware Host Profile
Большинство хостов ESXi в крупных компаниях управляются через vCenter Server. Даже если вы забыли пароль root, vCenter без проблем может управлять настройками хоста, т.к. вы уже привязали хост к vCenter и пароль root вам просто не нужен. Если же вы выведете хост из vCenter (лучше этого не делать) и попробуете добавить его снова, вам понадобится указать root пароль. Поэтому, пока ваш хост управляется vCenter, вы можете сбросить пароль root с помощью профиля хоста VMware (Host Profile).
Host profile – это набор заданных вами параметров ESXi, которые можно применить к любому хосту для его быстрой настройки. Обычно профиль хоста создается после настройки типового хоста ESXi и экспорта его конфигурации в Host profile. Данный профиль администратор может применить к любому другому хосту.
- Запустите vSphere Web Client и авторизуйтесь в vCenter.
- На домашней странице выберите Host Profile
- Нажмите на кнопку Extract Profile from a host, чтобы извлечь профиль хоста ESXi с известным вам паролем root.
- Выберите хост ESXi и нажмите Next.
- Укажите имя профиля (желательно указать и его описание).
- После того, как новый профиль создан, отредактируйте его.
- С помощью встроенного поиска найдите параметр с именем root (находится в секции Security and Services -> Security Settings -> Security -> User Configuration -> Root). Выберите опцию “Fixed Password Configuration” и укажите новый пароль root.
- Все остальные настройки в профиле нужно отключить. Нажмите Finish.
- Теперь нужно привязать этот профиль к вашему ESXi хосту, на котором нужно сбросить пароль. В меню Actions выберите Attach/Detach Hosts.
- Выберите ваш ESXi хост (на котором нужно сбросить пароль) и нажмите кнопку Attach.
- Перейдите на вкладку Host profile -> Monitor -> Compliance и нажмите кнопку Remediate.
- После выполнения проверки новые настройки применятся к хосту и у него появится статус Complaint (т.е. конфигурация хоста соответствует назначенному профилю). В предыдущих версиях ESXi чтобы применить профиль к хосту, его необходимо переводить в режим обслуживания (Maintenance Mode), также потребуется перезагрузка хоста.
- На этом все, пароль root на хосте был изменен. Не забудьте отвязать профиль от хоста.
Сброс пароля root с помощью Active Directory и vCenter
Также вы можете сбросить пароль root на хосте ESXi, если с помощью vCenter добавить ваш хост в домен Active Directory. После того, как вы включите ESXi в домен, вы сможете авторизоваться на нем с помощью доменной учетной записи и сбросить пароль локального пользователя root.
Запустите оснастку Active Directory Users and Computers и создайте новую доменную группу с именем ESX Admins (именно такое имя группы). Добавьте в группу учетку пользователя, пароль которого вам известен.
Теперь нужно добавить хост в домен. В консоли vCenter выберите хост, перейдите в раздел Configure -> Authentication Services -> Join Domain. Укажите имя домена и учетную запись с правами добавлять компьютеры в домен.
Теперь откройте веб интерфейс вашего хоста ESXi и авторизуйтесь на нем под учетной записью, которую вы добавили в группу ESX admins (имя учетной записи нужно задать в формате User@Domain или Domain\User).
После авторизации перейдите в раздел Host -> Manage -> Security & users -> Users и сбросьте пароль локального пользователя root.
После этого можете исключить ESXi из домена (Leave Domain).
Чтобы применить изменения, перезагрузите хост.
Сброс пароля root на отдельном хосте ESXi
В этом разделе мы покажем, как сбросить пароль root на отдельно стоящем ESXi сервере, который не добавлен в vCenter. Этот способ сброса пароля потребует перезагрузки хоста и выключения всех запущенных на нем виртуальных машин. Для сброса на понадобиться загрузочный диск, например, iso образ Ubuntu GNOME. Данный образ нужно записать на USB флешку, которую можно сделать загрузочной с помощью утилиты Rufus.
Затем нужно загрузить ESXi с этой флешки, подключить локальное хранилище с хоста ESXi, распаковать архив и изменить файл с паролями. Потом нужно заменить файл, перезагрузить хост и попробовать авторизоваться на ESXi под учетной root с пустым паролем.
Сброс пароля ESXi в файле shadow
Из соображений безопасности хост ESXi хранит пароль в зашифрованном виде в shadow. Нам нужно изменить пароль root в этом файле. Среди всех разделов на хосте ESXi нам нужен только /dev/sda5 (/bootbank). Именно в этом разделе диска хранится образ и конфигурация ОС.
После того, как вы загрузились с загрузочной флешки, выполните команду:
Выведем список дисков:
Нам нужен раздел /dev/sda5 размером 250 Мб. Создайте точку монтирования:
Создайте временны каталог:
Смонтируйте раздел /dev/sda5:
Нам нужен архивный файл с именем state.tgz (внутри него находится нужный нам файл local.tgz):
Распакуйте файлы state.tgz и local.tgz:
Вот как выглядит содержимое файлы shadow. Как вы видите, в нем содержаться все локальные учетные записи и их пароли (зашифрованные):
Чтобы сбросить пароль root на пустой, достаточно удалить все между двумя первыми двоеточиями и сохраните файл.
Теперь нужно упаковать файл shadow в обратном порядке:
Теперь переместите новый архив в оригинальный каталог с образом ESXi:
Теперь можно перезагрузить хост:
При загрузке ESXi распакует архив local.tgz и скопирует файлы конфигурации (в том числе shadow) в каталог /etc/. Попробуйте авторизоваться на сервере через DCUI без пароля. Система укажет, что пароль root не задан и в целях безопасности его нужно изменить.
Выберите пункт меню Configure Password и укажите новый пароль.
Замена пароля в файле shadow
Как один из вариантов рассмотренного выше способа сброса пароля на хосте ESXi, вы можете не сбрасывать, а заменить файл shadow файлом с другого хоста ESXi (с известным паролем). Вы можете с помощью WinSCP скопировать файл shadow с другого хоста ESXi на свою загрузочную USB флешку.
Загрузите ваш ESXi хост со своего загрузочного USB диска (в моем примере это Ubuntu GNOME). И выполните следующие команды:
Выведем список дисков:
Создадим две временные папки.
Смонтируйте раздел с образом ESXi и ваш USB диск, на котором находится скопированный с другого хоста файл shadow:
Создайте временные каталоги:
Найдите нужный файл в архиве:
Убедитесь, что вы распаковали каталог /etc.
Удалите архив local.tgz.
Замените оригинальный файл shadow на тот, который вы скопировали с другого хоста:
Можете посмотреть содержимое файла shadow.
Удалите лишние учетные записи, которые вам не нужны (кроме стандартных учеток). В моем примере я удалю пользователя Test. Сохраните файл shadow.
Упакуем содержимое каталога /etc.
Скопируйте архив state.tgz на раздел с образом ESXi:
Отмонтируйте раздел sda5:
Вот и все, теперь мы можете авторизоваться на хосте ESXi под известным паролем.
Этот способ подходит для версий VMware vSphere 6.5 / 6.7 / 7.0
Итак, Вы получаете в ответ на ввод пароля: Authentication failed. Invalid login or password.
Как сбросить пароль root в VMware ESXi по шагам
Делается это достаточно быстро, при должном опыте. Сперва выключаем хост. Нам понадобится ISO образ GParted LiveCD. Записываем диск или монтируем его через менеджмент сервера. Включаем и загружаемся.
Сейчас мы будем работать с разделом /dev/sda5
Теперь открываем терминал и выполняем следующие команды:
sudo su
mkdir /boot /temp
mount /dev/sda5 /boot
cd /boot
cp state.tgz /temp
cd /temp
tar -xf state.tgz
tar -xf local.tgz
rm *.tgz
cd etcПосле этого открываем файл shadow с паролями, например, с помощью редактора vim. И удаляем то, что находится в первой строке между первыми двоеточиями (это и есть пароль) с помощью клавиши Del. Получится что-то вроде того, что на скриншоте ниже.
Затам нажимаем : потом x и потом Enter. Так мы сохранили изменения в файле. Собираем все обратно и перезагружаемся.
cd ..
tar -cf local.tgz etc/
tar -cf state.tgz local.tgz
mv state.tgz /boot
umount /boot
rebootКак только сервер VMware ESXi загрузится, Вы сможете зайти на него под пользователем root без пароля. Установите пароль в веб-интерфейсе или через SSH командой passwd root.
Заключение
В этой записи мы рассмотрели как можно быстро сбросить пароль root в VMware ESXi. На самом деле больше нечего добавить, кроме как призвать Вас привыкнуть сохранять свои пароли с помощью надежного менеджера паролей. Дайте мне знать в комментариях ниже, если вам нужна какая-либо помощь с вышеприведенной информацией, я буду рад помочь.
ситуация — есть несколько ESXi-хостов, устанавливали их очень давно и пароли надёжно утеряны. все хосты подключены к vCenter Server (ну или vSphere Enterprise Plus) куда root-доступ у нас есть.
пароли на сами хосты иногда пригождаются (например для раздельного мониторинга). сменить эти проли можно используя профили хостов или Host Profile.
1. создаём профиль хоста с самого хоста:
2. для удобства именуем профиль и пишем описание:
3. сохраняем профиль (кнопка Finish)
4. теперь надо этот профиль отредактировать
4.1 меню работы с профилями:
4.2 открываем профиль для редактирования:
4.3 задаём новый пароль в профиле:
4.4 и запрещаем все остальные изменения при применении профиля
5 осталось всё это дело применить
5.1 вводим хост в режим обслуживания. ВНИМАНИЕ. в этом режиме все машины на хосте будут выключены, если останавливать их нельзя — живая миграция.
Читайте также: