Vmware esxi сбросить пароль root
Если вы забыли или потеряли пароль 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)
Заключение
В этой записи мы рассмотрели как можно быстро сбросить пароль root в VMware ESXi. На самом деле больше нечего добавить, кроме как призвать Вас привыкнуть сохранять свои пароли с помощью надежного менеджера паролей. Дайте мне знать в комментариях ниже, если вам нужна какая-либо помощь с вышеприведенной информацией, я буду рад помочь.
Как сбросить пароль 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.
VCSA 6.0 Update 2
The process is very similar to the one for VCSA 6.5. First, shut down the VCSA and take a snapshot.
1. Press the space bar to freeze the GRUB menu.
2. Press p and type in the password to unlock the advanced features in GRUB (refer to The GRUB Password section further down).
Figure 5 – Accessing advanced features in GRUB
3. Press e to enable Edit mode
4. Select the entry starting with “kernel /vmlinuz- …” and press e once more.
Figure 6 – Editing the boot up options in GRUB
5. Append init=/bin/bash to the kernel boot options
Figure 7 – Setting the VCSA to boot up as a root shell
6. Press Enter followed by b. This reboots the appliance in single-user mode.
7. Type in the passwd command. Type in the new password twice and press Enter to confirm.
Figure 8 – Changing the root password from a root shell
8. Reboot the appliance using the power options from the VMRC or vSphere client. Alternatively, you can use the reboot shell command. If this fails, run mkfifo /dev/initct first followed by reboot -f.
Here’s a second video illustrating the password change procedure on 6.0 U2.
Changing the root password and expiration settings
There will be times where you will not be able to log in as root despite being sure that you’re typing in the correct password. This will occur whenever the root password expires after the default password lifetime of 365 days. Additionally, it is very common to set the expiration period to 90 days or less to tighten up security. You can disable password expiry altogether but this is definitely not recommended.
Figure 10 – VCSA 6.0 U2: Root password and expiration settings in VAMI
Figure 10 – VCSA 6.5: Root password and expiration settings in VAMI
Alternatively, use the chage command from the ESXi shell as shown in Figure 11 which consists of a screen grab of the root settings in VAMI next to a screen grab of the VCSA VM’s console while in shell. Here’s a step by step explanation of the commands used.
1. chage -l root : Displays the account details for root which include the account and password expiry dates, the date at which the password was last changed, etc.
2. passwd : This command simply prompts you to change the password of the currently logged on user, which in this case happens to be root.
3. chage -M 30 root : Here I’ve used the chage command to set the password expiration period to 30 days from when the password was last changed.
4. Same as (1). You can see that the “Maximum number of days between password change“value – which is a bit misleading if you ask me – is now set to 30. The change is also reflected in the VAMI settings screens when it is refreshed.
Figure 11 – Changing the expiration period of an account using chage
This concludes today’s post. As always, make sure to take a snapshot or a backup of the appliance when committing these type of changes. This allows you to quickly revert to a working vCSA instance should you hit a dead end.
Любой когда-либо в жизни забывал пароль. Неприятнее всего, если это происходит на работе… В этой статье мы рассмотрим как просто сбросить пароль root в VMware ESXi. На это понадобится не более 10 минут.
Этот способ подходит для версий VMware vSphere 6.5 / 6.7 / 7.0
Итак, Вы получаете в ответ на ввод пароля: Authentication failed. Invalid login or password.
Сброс пароля 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).
Чтобы применить изменения, перезагрузите хост.
Смена пароля из DCUI меню
Direct Console User Interface (DCUI) - это первый инструмент после установки гипервизора, который видит администратор. Серо-желтый интерфейс с минимализмом, но с большой функциональностью. И так залогиньтесь через DCUI интерфейс и перейдите в меню "Configure Password". Нажмите Enter.
У вас появится окно предлагающее изменить текущий пароль от учетной записи root. В первом поле "Old Password" вам необходимо ввести текущий пароль, без этого никуда. Далее в в поле "New Password т Confirm Password" новый пароль. Старайтесь чтобы в пароле присутствовала большая буква, маленькая, цифра и спецсимвол, чтобы он был стойким.
Если пароль будет не соответствовать требованиям к безопасности, то вы получите уведомление:
The password change operation failed. Please ensure that your password meets the complexity criteria set by the system
Это такой аналог политики PSO в Windows Server у Microsoft. К данному методу, обычно прибегают в самую последнюю очередь, так как для этого нужно иметь физический доступ к серверу или порту управления, такому, как ILO или IPMI.
Смена пароля пользователя через Vmware PowerCLI
Уверен. что многие из вас уже активно используют командлеты оболочки PowerShell, у Vmware есть своя оболочка Vmware PowerCLI 6.5. Запускаем ее и вводим команду для подключения к ESXI 6.5 хосту:
Нажимаем Enter. У вас появится запрос на указание DNS-имени сервер или его ip, указываем его и продолжаем. У вас выскочит предупреждение про сертификат и форма аутентификации.
Если все хорошо, то вы увидите, что вы подключились по 443 порту под учетной записью с административными правами.
Для смены пароля введите:
Если пароль будет слабым, то вы получите ошибку, если все хорошо, то пароль будет изменен.
Смена пароля пользователя через Web-интерфейс
Так же данный метод очень удобный, для его осуществления вам необходим только браузер. В поисковой строке укажите ip адрес вашего ESXI 6.5 сервера и залогиньтесь. Перейдите в пункт "Manage", далее на вкладку "Security & users". После чего найдите пункт "Users", он будет так же содержать список учетных записей, кроме системных. Выбираем нужную учетную запись и выбираем пункт "Edit user".
В открывшемся окне укажите два раза новый пароль и сохраните его.
Смена пароля ESXI через толстого клиента
Данный метод будет актуален для устаревших версий гипервизора Vmware ESXI 5.5 и ниже. Откройте VMware vSphere Client и перейдите в vSphere Configuration->Security Profile->Services->Properties->Local Users & Groups. Найдите нужного вам пользователя и перейдите в его свойства.
Forgetting passwords is something that unfortunately happens to everyone, and resetting the ESXi root password requires a bit of attention from your side . And that’s why password managers exist. No, it’s not ok to write them down on yellow sticky notes stuck to your monitor unless you want to give your security guys a heart attack. I guess, given this post’s title, you know where I’m going with this if you forgot your ESXi root password .
It’s 10 in the evening. You get a call and start troubleshooting right away. You figure that a management services restart will fix the issue. Your host is connected to a remote KVM switch, so you press F2 and type in the password. No dice. Maybe, it’s a typo maybe not. You try again, and again and end up locking yourself out because of a forgotten root password . You did save the ESXi password but along the way, you changed it and forgot to update it in your password manager. According to VMware, the only supported fix is to re-install ESXi unless you’re still running ESX which is highly unlikely.
In pre-ESXi era, the hypervisor had a service console that enabled you to boot in single-user mode. This allowed you to change the password from bash. Incidentally, this method can still be used nowadays to change the root password of a vCenter Server appliance. No such thing for ESXi.
In today’s post, I’ll show you how you can use a Live Linux CD/DVD, to change the root password on your ESXi host. VMware does not support this method citing complexity, but I don’t buy this – there is nothing really complex about it. ESXi saves the root password encrypted in /etc/shadow as is standard with Linux.
An invalid password typed in at the console
Методы смены пароля у учетной записи в ESXI 6.5
Существует, как минимум четыре метода позволяющих нам выполнить нужные действия:
- Из интерфейса управления DCUI
- Из командной строки ssh
- С помощью веб-интерфейса Vmware-ESXI 6.5
- С использованием Power-CLI
Как видите инструментарий весь и весьма значительный.
The GRUB Password
While carrying out research for this post, most of the info I came across stated that the GRUB password on VCSA is set to vmware by default unless the root password was changed via VAMI, in which case both the GRUB and root password are set to be the same. When I installed VCSA 6.0 U2 (version 6.0.0.20000-3634791) I found that this was not the case. The GRUB password was by default set the same as that for root. At no point during the vCSA installation do you get to set the GRUB password and you also cannot skip setting one for root. So, I don’t know how and when the GRUB password is set to vmware. And yes, I’m positive that I did not change the root password using VAMI or otherwise.
Figure 9 – Setting the root password while installing VCSA 6.0 U2
Why am I ranting? Well, if this is the default behavior in U2 you are faced with two issues if you happen to lose or forget the root password. It logically follows that if you’re locked out from making changes to GRUB, there is no way you can reset the root password. Not all hope is lost, however. You can use a technique similar to the one used to recover Windows passwords. Here’s a good link that outlines this procedure.
Note: On VCSA 6.5 you’ll find that access to GRUB is not password protected much to the horror of the security folk!
How to reset ESXi root password
The following procedure documents how one would go about resetting the password for root on ESXi 6.5 host. This should work on earlier versions of ESXi though I only tested it on 6.x. It also makes no difference whatsoever if the host is physical or nested.
It is of utmost importance to note that you will not be able to ‘deceive’ ESXi’s security and change the node’s root password without powering it off. Meaning you need to evacuate the VMs to other hosts in the cluster or shut them down to place the host in maintenance mode.
For this post, in order to reset the ESXi root password, I’m using a nested host for convenience’s sake alone. And, yes, I carried out this same procedure a number of times on physical ESXi hosts. Note also, that the host must be powered down for this to work so unless migrated, all hosted VMs will obviously stop working.
Step 1 – Insert the bootable Live CD, make sure your server can boot off CD/DVD or USB and power it up. If you’re using the Gparted LiveCD, just follow the on-screen instructions as it is loading.
Booting off the GParted LiveCD
Step 2 – Locate the 2 partitions sized 250MB. As mentioned, /dev/sda5 is what we’re after assuming you installed ESXi on the first available disk. This may differ if, for instance, you installed ESXi on a USB device.
GParted listing the ESXi partitions found on the primary disk. Your mileage may vary according to the size of the boot drive and the medium (SD, USB, drive…).
In general, I tend to store all my passwords in something like KeePass or some other password management tool. I also have a habit of jotting down credential details in the annotation or notes field for any VM I create for testing purposes. This serves as a quick self-reminder whenever I need to log on a VM and also help users access a VM when required.
To cut a long story short, I found myself trying to log in as root on a test VCSA I had recently set up and, for the life of me, I could not recall the password. As luck would have it, I neither saved the password to KeePass nor did I write it down in VM’s annotation field. So much for good habits!
Figure 1 – The Annotations / Notes fields as displayed in the vSphere traditional and Web clients
As I wasn’t particularly keen on reinstalling the appliance from scratch, I googled around to see if resetting a root password on vCSA can be done. Surely enough it can, hence today’s post! So, if you ever found yourself locked out of VCSA because you forgot the root password, read on!
Disclaimer: I tested the procedure on VCSA 6.0 U2 and VCSA 6.5. In theory, it should work on earlier releases but I do not have the time to test this out on every version released to date. Do so at your own risk and always back up the appliance before effecting any changes.
Сброс пароля 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 и укажите новый пароль.
Сброс пароля 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 на хосте был изменен. Не забудьте отвязать профиль от хоста.
VCSA 6.5
First, shut down the VCSA and take a snapshot.
1. Start the appliance up and press the space bar to freeze the GRUB menu. Note that you need to be somewhat quick here.
2. Press e to enable edit mode.
3. Append rw init=/bin/bash to the list of options as shown in Fig. 2.
Figure 2 – Setting the boot options in GRUB
4. Press F10 to reboot. The appliance will now boot up in bash or root shell.
5. Type passwd to change the root password. Type it twice and press Enter to confirm.
6. Optionally, you can unmount the file system using umount /
Figure 3 – Changing the root password and unmounting the file system
7. Reboot the appliance using the power options from the VMRC or vSphere client menu.
Figure 4 – Rebooting the appliance from VMRC
You should now be able to log in with root using the new password as shown in this next video.
Замена пароля в файле 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 под известным паролем.
В основном к данной процедуре прибегают, когда хотят сделать пароль либо более стойким в целях безопасности, либо более удобным, чтобы проще было набирать, у всех свои требования.
How it all works
First off, SSH to your host and have a look at /etc/shadow . You should see something like this.
This is from a test ESXi host I use, so be my guest and try to reverse hash the password. Good luck with that. The string boxed in red is what we’re after. Deleting it will reset the password to null. Of course, if you can’t root to your host, there’s no way you can do this, hence why we use a live CD. Booting off a Linux Live CD/DVD allows us to access and change the file. The trick is knowing which file to change. Changing the one that’s accessible when SSH’ed to the host is of no use since the changes are overwritten once you boot up the host.
As you probably know, ESXi uses several disk partitions. One, in particular, is called bootbank. This partition contains the hypervisor core files and the host’s configuration which is what ends up being loaded into memory. The partition, by default, is called /dev/sda5.
The /etc/shadow file we’re after is found in a compressed archive called state.tgz which is found under /dev/sda5 . So, here’s what we need to do.
- Download a Live Linux CD/DVD. Take your pick from this list . I chose the Gparted LiveCD one.
- Burn a USB or CD/DVD with the Live CD/DVD and boot your host off it.
- Mount /dev/sda5 and copy state.tgz to a temp folder.
- Uncompress state.tgz and edit the shadow file.
- Recompress the archive and overwrite state.tgz with it
- Unmount and reboot the host.
Смена пароля пользователя через ssh
Данный метод, на мой взгляд самый простой, но он требует активированной службы ssh в ESXI 6.5. Хотя сама Vmware рекомендует ssh постоянно не оставлять в рабочем состоянии, так как это еще один вектор проникновения и атаки на хосты, в этом есть доля истины.
Подключаемся по ssh к вашему хосту с гипервизором, для этого можно использовать Putty или более мне привычный mRemoteNG.Так как ESXI, это по сути Linux, то и конфигурационные файлы у него в большинстве случаев лежат по тем же путям, что и у большинства дистрибутивов. Нас с вами будут интересовать файл passwd в котором мы можем получить список локальных пользователей на хосте. Для этого выполните команду:
Как видите у меня, это стандартный список. Я в своем примере поменяю пароль для root.
Чтобы это сделать введите команду:
Вам предложат в пунктах "Enter new password" и "Re-Type" указать новый пароль для учетной записи root, если все хорошо, то получите уведомление password updated successfully.
Кстати, если вы читали мою статью, про командную строку ESXI, то вы должны помнить, что вызвать Direct Console User Interface можно и в ssh сессии, тем самым получить псевдографику. Для этих целей была команда:
Выглядит это вот так, все те же пункты меню, но уже без разноцветных цветов, зато функционал полностью доступен. Выйти из данного режима позволит вам команда CTRL+C.
Читайте также: