[更改忘记的 ESXi 6.5主机根密码]

本文提供了重置丢失或忘记的 ESXi 6.5 主机根密码的步骤。

根据VMware Knowledge Base的说明,Esxi 6.5主机root密码如果忘记的话是无法恢复的。但是我在Dell R720上面安装Esxi6.5的时候就遇到了一个问题:安装没有任何错误提示,但是最终就是无法登陆。

相关信息:

如果您忘记了或不知道 ESX 主机的 root 用户密码,您可能能够更改此密码,而不需要重新安装。

警告: 这会被恶意使用,应通过对主机进行物理访问、通过身份验证的远程控制台访问、监控和防止重新引导程序(例如:GRUB 密码)和管理网络受限访问对其进行安全防护。

有关安全最佳实践的详细信息,请参见 [VMware Infrastructure 3 Security Hardening]。

注意: 以下过程将执行密码重置。 此操作将用新密码盲替代现有根密码。 这不是一种密码恢复机制。 也就是说,它不允许您了解原始根密码。 VMware 不提供工具或方法来恢复 ESX/ESXi 主机的原始根密码。

ESXi 3.5、ESXi 4.x、ESXi 5.x 和 ESXi 6.0

重新安装 ESXi 主机是 ESXi 唯一支持的密码重置方法。 其他任何方法都可能导致主机出现故障或由于 ESXi 架构的复杂性导致配置不受支持。 ESXi 没有服务控制台,因此单用户模式等此类传统的 Linux 密码重置方法也不适用。

[https://kb.vmware.com/kb/1317898?lang=zh_CN]

在今天的帖子中,我们会使用Live Liunx CD/DVD更改Esxi主机上面的root密码。[更改忘记的 ESXi 6.5主机根密码]

如何运作?

首先我们要知道如何才能清空或者更改Linux(esxi宿主系统也是基于Linux的)的密码,那就是/etc/shadow文件。下面是一个例子:

[root@server3 ~]# cat /etc/shadow
root:$6$iPXm3umdXcylLJcT$5IGiI4pso/SrkCw3VRqi1lQZDnvtP50REuaN/Q4aXCvcmN7Za4HcCrgjxVRxUxdww8VpMYbj2oPm51ittaPrF/::0:99999:7:::
bin:*:17632:0:99999:7:::
daemon:*:17632:0:99999:7:::
adm:*:17632:0:99999:7:::

我们要做的就是使用第三方系统进入主机,越权操作Esxi宿主机系统的/etc/shadow文件。

在这里我们介绍一下Esxi使用了多个磁盘分区。其中一个比较特别的叫做bootbank。此分区包含管理程序核心文件和主机配置,这最终会被加载到内存中。默认情况下,分区称为/dev/sda5。

我们所关注的/etc/shadow文件位于名为state.tgz的压缩存档中,该存档位于/dev/sda5下。

所以,这就是我们需要做的。

  • 下载Live Linux CD/DVD。从这个[列表中选择]。我选择了Gparted LiveCD。
  • 使用Live CD/DVD刻录USB或CD/DVD,然后启动主机。
  • 挂载/dev/sda5并将state.tgz复制到临时文件夹。
  • 解压缩state.tgz并编辑影子文件。
  • 重新压缩存档并用它覆盖state.tgz
  • 卸载并重新启动主机。

重置root密码

以下过程介绍了如何重置 ESXi 6.5主机上的root密码。这应该适用于早期版本的ESXi,虽然我只在6.x上测试过。如果主机是物理的或嵌套的,它也没有任何区别。

对于这篇文章,我只是为了方便而使用嵌套主机。并且,是的,我在物理ESXi主机上执行了相同的过程很多次。另请注意,必须关闭主机才能使其正常工作,因此除非迁移,否则所有托管的VM显然都会停止工作。

步骤1 – 插入可启动的Live CD,确保您的服务器可以启动CD/DVD或USB并启动它。如果您使用的是Gparted LiveCD,请在加载时按照屏幕上的说明进行操作。

[更改忘记的 ESXi 6.5主机根密码]

步骤2– 找到2个大小为250MB的分区。如前所述/dev/sda5是我们假设您在第一个可用磁盘上安装ESXi后的内容。例如,如果您在USB设备上安装了ESXi,则可能会有所不同。[更改忘记的 ESXi 6.5主机根密码]

步骤3 – 打开终端窗口并按照列出的确切顺序运行以下命令。

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

[更改忘记的 ESXi 6.5主机根密码]

然后我们删除/etc/shadow文件中root后面一个:和第二个:之间的内容。

[更改忘记的 ESXi 6.5主机根密码]

继续运行以下命令。

cd ..
tar -cf local.tgz etc/
tar -cf state.tgz local.tgz
mv state.tgz /boot
umount /boot
reboot

步骤4 – ESXi主机重新联机后,尝试 从DCUI(控制台)或使用putty或类似的SSH 以root身份登录。您应该能够在不键入密码的情况下登录,但会提醒您设置一个您应该做的事情。