忘记ESXi root密码?不慌,这里有4种方法来重置。

密码是大家容易忘记的东西,ESXi的root密码也不例外。没有root密码,你将失去对主机的控制,所以知道如何重置ESXi root 密码很重要。本文将重点介绍如何重置ESXi root密码。

当发生这种情况时,会首先浏览一些官方KB,不幸的是,VMware建议重置密码的唯一方法是重新安装操作系统。如果不想重装系统怎么办?本文告诉你!

这篇文章使用的是ESXi 6.7.0(8169922),但是ESXi 6.X和ESXi 5.X同样适用,重置密码的方法非常危险,谨慎使用。

点击阅读原文

理论发现

在考虑过一些忘记密码的情况后,发现这两种情况最常见:

A.忘记ESXi root密码,但是可以通过vCenter 访问主机

B.忘记ESXi root密码,但是无法访问。

第二种看起来比较糟糕,本文将告诉你在这两种情况下如何重置密码。

通过vCenter更改密码

有这样一个场景:忘记ESXi root密码,但是安装了vCenter,这是一个很常见的问题,管理员通过vCenter管理主机,但是有一天他们忘记了主机密码,这个情况下恢复密码并不难。

首先,看一下如何通过flash vCenter Webclient更改密码,在这里,html模式并不适合。

备注:ESXi不能低于企业增强版。

为了重置密码,需要提取、编辑、上传主机配置文件。

跳转到vCenter,如下图提取主机配置文件

ESXI密码就是错误 esxi密码不对_重置密码


在提取时,指定主机名并输入一些必要的描述。

ESXI密码就是错误 esxi密码不对_root密码_02


检查输入的信息并点击Finish。

ESXI密码就是错误 esxi密码不对_重置密码_03


在vCenter中,导航到“Home”选项卡,然后转到“Host Profiles”。

ESXI密码就是错误 esxi密码不对_重置密码_04


右键单击“Host Profiles”,编辑设置。

ESXI密码就是错误 esxi密码不对_root密码_05


根据需要,指定新名称和描述。

ESXI密码就是错误 esxi密码不对_root密码_06


更改名称和主机描述后,转到“Edit host profiles”选项卡。实际上,可以在此处更改许多设置,但我们只更改主机密码这一项。

ESXI密码就是错误 esxi密码不对_root密码_07


现在,已经更改密码,将主机添加到集群中并应用设置。

ESXI密码就是错误 esxi密码不对_重置_08


在“Attach/Detach Hosts and Clusters”菜单中,选择要更改密码的主机。在这里要提一下,可以将更改应用到多台主机。

ESXI密码就是错误 esxi密码不对_ESXI密码就是错误_09


在添加主机后,如果需要可以更改网络设置,只要单击“Finish”即可应用设置。

ESXI密码就是错误 esxi密码不对_重置密码_10


需要将节点置于维护模式,否则无法应用任何设置。

ESXI密码就是错误 esxi密码不对_ESXI密码就是错误_11


确认将选定的主机置于维护模式。需要注意,除非可以暂时关闭虚拟机,否则需要迁移虚拟机。就我而言,主机上没有关键任务虚拟机,因此我只是预先关闭了它们的电源。

ESXI密码就是错误 esxi密码不对_重置密码_12


现在,回到“Object”选项卡,右键单击“Host Profiles”,选择“Remediate”

ESXI密码就是错误 esxi密码不对_重置密码_13


选择所需的主机。

ESXI密码就是错误 esxi密码不对_重置密码_14


验证所有设置,然后检查是否可以完全应用更改。点击“Finish”。

ESXI密码就是错误 esxi密码不对_重置密码_15


重启主机后,退出维护模式。

ESXI密码就是错误 esxi密码不对_重置_16


现在,可以检查一下密码是否重置成功,通过Web Client使用新密码登录ESXi主机。

通过使用Active Directory 和vCenter重置密码

可以使用Active Directory在vCenter中修改密码。如果将ESXi添加到域中,可以通过域用户登录到节点重置密码。

跳转到域控制器上的“AD Users andComputers”,创建一个新的工作组“ESXi Admins”。确保为工作组使用相同的名称,添加一个新用户,在后面要使用这个用户来重置密码。可以是任意用户,比如TestUser。

ESXI密码就是错误 esxi密码不对_重置_17


将忘记密码的主机添加到域中。

ESXI密码就是错误 esxi密码不对_root密码_18


尝试使用TestUser来登录ESXi主机,格式为 User@Domain 或者Domain\User.

ESXI密码就是错误 esxi密码不对_重置密码_19


登录主机后,跳转到 “Security & users”选项卡,重置密码。

ESXI密码就是错误 esxi密码不对_重置密码_20


从现在开始,可以使用新密码。如果不需要主机在域中,可以将主机从域中踢出来。

ESXI密码就是错误 esxi密码不对_ESXI密码就是错误_21


应用更改,重启主机。

备注:使用vCenter更改密码非常容易,但是VMware出于某些原因不建议这样做。

在独立的ESXi主机上重置密码

现在,知道了如何在vCenter下重置ESXi密码,让我们来看一些棘手的情况。假设没有在主机上安装vCenter,也不想重装操作系统。那么,如何在本节点上重置密码?

如果不关闭主机,将无法避过ESXi的安全性去重置密码。这意味着,必须将每个虚拟机关机。

需要从CD镜像启动,在本文中使用UbuntuGNOME。

ESXI密码就是错误 esxi密码不对_root密码_22


因此,需要从闪存盘启动,安装所需的ESXi数据存储,解压缩文件,然后编辑密码文件。将文件上传到初始目录,重新启动主机后,可以在不使用密码的情况下访问它。

编辑“shadow”文件

1. “shadow”文件是什么?

出于安全考虑,ESXi将密码加密在某些文件中……不管怎样,仍然可以通过以下方式重置密码。根据一些非官方消息来源,此文件称为“shadow”。可以在/ etc目录中的其中一个引导卷中找到它。在启动主机之前,/ etc在local.tgz中。这里是路径:/etc => local.tgz =>state.tgz.

在ESXi 6.0或更高版本中格式化磁盘的方法如下:

ESXI密码就是错误 esxi密码不对_重置_23


在所有这些卷中,我们只需要/ bootbank一个即可,“shadow”应该在这里。

先从闪存盘启动主机,然后启动终端。

运行以下命令以获得root特权:

# sudo su

查看磁盘名称,找到所需的磁盘名称。

# fdisk –l | grep/dev/sda

ESXI密码就是错误 esxi密码不对_ESXI密码就是错误_24


看来需要250 MB / dev / sda5目录。创建mnt目录。

# mkdir /mnt/sda5

现在为临时文件创建目录。

# mkdir /temp

使用下面的命令挂载/ dev / sda5目录。

# mount /dev/sda5/mnt/sda5

找到上面所说的state.tgz

# ls -l /mnt/sda5/state.tgz

提取state.tgz和local.tgz。

# tar -xf/mnt/sda5/state.tgz –C /temp/

# tar -xf /temp/local.tgz –C/temp/

完成解压缩后,删除旧的:

# rm /temp/.tgz*

打开文件,对其进行编辑,然后将其关闭。就这么简单!要再次检查更改,请再次打开文件。

# vi /temp/etc/shadow

这就是“shadow”的内容,里面包含所有用户的密码

ESXI密码就是错误 esxi密码不对_ESXI密码就是错误_25


要重置密码,只需删除双冒号之间的所有内容。记住,所有内容都是加密的,这就是为什么密码看起来很奇怪的原因。

ESXI密码就是错误 esxi密码不对_root密码_26


# vi /temp/etc/shadow
# cd /temp

将“shadow”文件添加回去

# tar -czf local.tgz etc

# tar -czf state.tgzlocal.tgz

将新的存档移动到初始目录。

# mv state.tgz/mnt/sda5/

卸载/ sda5磁盘:

# umount /mnt/sda5

重启主机

# reboot

这里列出了需要操作的所有命令。

ESXI密码就是错误 esxi密码不对_重置密码_27


立即重新启动服务器,然后尝试不使用任何密码访问主机。

ESXI密码就是错误 esxi密码不对_ESXI密码就是错误_28


选择Configure Password,键入新密码。

ESXI密码就是错误 esxi密码不对_ESXI密码就是错误_29

2. 替换“shadow”

还有另一种使用“shadow”重置ESXi root密码的方法。实际上,这不过是上述方法的一种变体。因此,重置ESXi密码的另一件事就是使用另一个主机“shadow”文件!只需将具有已知root密码的另一台ESXi主机中的“shadow”文件复制到闪存盘中即可。要从其他主机获取带有密码的文件,需要WinSCP。可以使用已知的ESXi root密码从主机检索该文件,不需要关机。

ESXI密码就是错误 esxi密码不对_root密码_30


接下来,使用Ubuntu GNOME调用终端并重置密码。

将用户权限更改为root权限:

# sudo su

看看磁盘上的内容。

# fdisk –l | grepsd

创建两个临时文件夹

# mkdir /mnt/sda5

# mkdir /mnt/sdb1

挂载“shadow”所在的ESXi磁盘和闪存磁盘。

# mount /dev/sda5 /mnt/sda5

# mount /dev/sdb1 /mnt/sdb1

创建临时文件

# mkdir /temp

创建文件夹以保存state.tgz副本

# mkdir /mnt/sdb1/save

找到必要的文件。

# ls -l/mnt/sda5/state.tgz

复制文件

# cp/mnt/sda5/state.tgz /mnt/sdb1/save

运行以下命令来检查文件是否已被复制

# ls -l /mnt/sdb1/save

使用命令提取state.tgz

# tar -xf/mnt/sda5/state.tgz –C /temp/

找到temp文件

# ls –l /temp

提取local.tgz.

# tar -xf/temp/local.tgz –C /temp/

确保提取了/etc文件

# ls –l /temp

ESXI密码就是错误 esxi密码不对_ESXI密码就是错误_31

删除local.tgz卷,以确保它不会包含在新存档中。

# rm /temp/local.tgz

在/etc中找到“shadow”文件

# ls -l /temp/etc

用已知密码的“shadow”文件替换现在的“shadow”文件

# cp /mnt/sdb1/shadow/temp/etc

ESXI密码就是错误 esxi密码不对_重置密码_32


# vi /temp/etc/shadow如果不希望某些用户访问主机,可以将他们从清单中删除。在这里,我从可以访问主机的用户中删除了Test。为什么只删除Test?在这一点上,想提醒不要删除任何您不熟悉的用户。就我而言,除Test以外的所有用户都是系统用户。如果删除其中任何一个,则可能会使操作系统不稳定!

ESXI密码就是错误 esxi密码不对_ESXI密码就是错误_33

ESXI密码就是错误 esxi密码不对_重置密码_34

检查是否已应用所有更改。

# vi /temp/etc/shadow

跳到/temp

*# cd /temp

tar -czf local.tgzetc*

检查归档是否运行顺利。

# ls -l /temp/

创建 state.tgz

# tar -czf state.tgzlocal.tgz

检查是否已创建

# ls -l /temp/

移动state.tgz

# mv state.tgz/mnt/sda5/

再检查一次结果。

# ls -l /mnt/sda5/

卸载sda5

# umount /mnt/sda5

重启主机

# reboot

如果一切正确,则可以使用已知密码访问主机。

ESXI密码就是错误 esxi密码不对_root密码_35

如果主机在重新启动后开始表现异常,则仍然有初始文件的副本。可以同时安装/ sda5和/ sdb1并使用以下命令检索原始state.tgz,然后重试!

# cp/mnt/sdb1/save/state.tgz /mnt/sda5/

总结

讨论了四种重置ESXi主机root密码的方法。第一种方法是最简单的方法,如果安装了vCenter,它将非常有效。如果没有vCenter,仍然可以重设密码,但后两种方法有点冒险。特别是,谨慎使用最后一种方法,删除了任何系统用户,都会比较烦。