ESXi root 密码重置

admin
admin
admin
69
文章
2
评论
2020年3月23日15:39:10 评论 165 4894字阅读16分18秒

忘记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 root 密码重置

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

ESXi root 密码重置

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

ESXi root 密码重置

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

ESXi root 密码重置

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

ESXi root 密码重置

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

ESXi root 密码重置

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

ESXi root 密码重置

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

ESXi root 密码重置

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

ESXi root 密码重置

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

ESXi root 密码重置

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

ESXi root 密码重置

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

ESXi root 密码重置

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

ESXi root 密码重置

选择所需的主机。

ESXi root 密码重置

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

ESXi root 密码重置

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

ESXi root 密码重置

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

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

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

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

ESXi root 密码重置

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

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

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

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

 

应用更改,重启主机。

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

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

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

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

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

 

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

  • 编辑“shadow”文件

  • “shadow”文件是什么?

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

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

Volume name What it is for? Volume size in my case
/dev/sda1 Starts the system 4 MB
/dev/sda2:  /scratch: System volume that is created while installing  ESXi on the over-5 GB disk. 4 GB
/dev/sda3:  VMFS datastore: Represents all  the remaining disk space
/dev/sda5:  /bootbank: The ESXi image 250 MB
/dev/sda6:  /altrbootbank: The older system version image. You’ll see it  as an empty volume if you have never updated the system 250 MB
/dev/sda7:  vmkDiagnostic (the first volume) Keeps the core dump 110 MB
/dev/sda8:  /store VMware Tools image 286 MB
/dev/sda9: vmkDiagnostic  (the second volume) Keeps all the information  connected with vSAN diagnostics. You can observe this volume only in over-8  GB datastores 2.5 GB

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

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

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

# sudo su

 

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

# fdisk –l | grep/dev/sda

 

看来需要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”的内容,里面包含所有用户的密码

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

 

# 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

 

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

 

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

 

选择Configure Password,键入新密码。

  • 替换“shadow”

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

 

接下来,使用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

 

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

# rm /temp/local.tgz

 

在/etc中找到“shadow”文件

# ls -l /temp/etc

 

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

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

 

# vi /temp/etc/shadow

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

 

 

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

# 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

 

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

 

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

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

 

  • 总结

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

admin
  • 本文由 发表于 2020年3月23日15:39:10
  • 除非特殊声明,本站文章均为原创,转载请务必保留本文链接
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: