惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园_首页
GbyAI
GbyAI
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Apple Machine Learning Research
Apple Machine Learning Research
大猫的无限游戏
大猫的无限游戏
阮一峰的网络日志
阮一峰的网络日志
Last Week in AI
Last Week in AI
V
Visual Studio Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
The Cloudflare Blog
博客园 - 【当耐特】
博客园 - 叶小钗
量子位
博客园 - 聂微东
S
SegmentFault 最新的问题
美团技术团队
Hugging Face - Blog
Hugging Face - Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
月光博客
月光博客
宝玉的分享
宝玉的分享
小众软件
小众软件
罗磊的独立博客
有赞技术团队
有赞技术团队
Stack Overflow Blog
Stack Overflow Blog

运维开发绿皮书

OBS虚拟摄像头重命名 Ubuntu备份为LiveOS 使用Powershell卸载windows默认程序 Cisco路由器OSPF配置 汽车的分类和特点 Windows11跳过TPM2.0 HTTPS 双向认证与 USB 加密锁配置实战 SSL 证书工具 字数统计 BMI 计算 颜色转换 Hash 生成器 JSON 格式化 JWT 解码 房贷计算 时间戳转换 URL 编码 UUID 生成 牛马时钟 二维码批量生成器 CKS Simulator Kubernetes 1.25 FRP TOTP验证码生成器 direct-ssh-passthrough-nat 脚本使用说明 Python软件授权 Linux命令行百度网盘 为 Containerd 配置 Harbor 无证书镜像站 Docker一键部署Meta和MetacubexD面板 必应搜索屏蔽垃圾网站 VMware的ubuntu完整安装vm-tools支持粘贴板
VMware ESXi 密码恢复指南
Paper-Dragon · 2025-09-05 · via 运维开发绿皮书

VMware ESXi 密码恢复指南

背景故事

某企业客户在日常运维中,由于人员岗位变动和交接文档不完整,意外丢失了VMware ESXi服务器的root管理员密码。导致运维团队无法正常登录和管理虚拟化平台,影响了日常的虚拟机维护和监控工作。

由于该ESXi服务器承载了多个关键业务系统,常规的密码重置方法无法适用,且客户希望尽可能保留现有的服务器配置和虚拟机状态。

因为遇到了这个事情然后对特定版本进行恢复密码,发现不同版本的VMware密码的恢复方法不一样,我对各种版本的VMware稍作研究,对方法进行记录。

Esxi的密码加密类型可以大致分为两种种,7.0.1之前的版本是配置记录法,通过明文密码进行记录,并压缩保存,7.0.1之后的版本使用了加密压缩包+数据库进行记录,安全性大幅增加;下面我对每种类型的密码加密和破解进行分章节介绍。

7.0.1之前的Esxi版本密码破解

环境准备

启动Linux Live系统(如Fedora Live),打开终端,确认ESXi配置分区(通常是/dev/sda5)。

操作步骤

备份和解压配置文件

mount /dev/sda5 /mnt
mkdir /tmp/esxi_recovery
cp /mnt/state.tgz /tmp/esxi_recovery
cd /tmp/esxi_recovery
tar xzf state.tgz
tar xzf local.tgz

修改密码配置 编辑etc/vmware/esx.conf文件(6.5前版本可能是esxi.conf):

找到密码相关行进行修改或删除。

6.7-7.0.1版本操作

vi etc/shadow
# 删除root那一行的加密密码,密码就会为空,不需要密码就能登陆控制台

重新打包并恢复

tar czf local.tgz etc/
tar czf state.tgz local.tgz
cp state.tgz /mnt/state.tgz
umount /mnt

重启ESXi主机 重启后即可使用修改后的密码登录。

7.0.1之后的Esxi密码破解

环境准备

  • 一台ESXi服务器(可使用crypto-util命令)
  • 一个CD Linux系统(用于挂载ESXi配置盘,推荐使用Fedora Live或其他带桌面环境的发行版)

在Linux操作系统内进行拷贝解压

mount /dev/sda5 /mnt
mkdir /tmp/esxi_recovery
cp /mnt/state.tgz /tmp/esxi_recovery
cd /tmp/esxi_recovery
tar xzf state.tgz

我们可以得到加密的文件

ls 
encryption.info
local.tgz.ve

将local.tgz.ve文件解密和修改

转移进Esxi系统进行操作

解密

crypto-util ++coreDumpEnabled=false,mem=20 envelope extract --aad ESXConfiguration local.tgz.ve local.tgz
tar -zxvf local.tgz
# 这里能得到var目录和etc目录

编辑和注入加密密钥

生成密钥

lunar@light MINGW64 ~
$ openssl passwd -6 P@ssw0rd456
$6$WETC82U1igW2DA5B$DdhGW5DJGvZibnsGn2V.xdKGGeMQfs5K7dXcpf9C2v9pqmgKF01ma/iH1.yfHD0Jwb8rv0mt1kmkZFlG53Ltq1

lunar@light MINGW64 ~
$ openssl passwd -6 P@ssw0rd456
$6$TQSuipF384bW8Ggf$PjUJ46McgVBwqUGcJjSFD241tpXXPvedUPwwLEHS9i64l0fREBtvxCdxmWelDwBz0Vc28bbAMZtLJEqE8Yri70

查询密钥存储

/usr/lib/vmware/sqlite/bin/sqlite3 /tmp/var/lib/vmware/configstore/backup/current-store-1
select * 
from config 
where Component='esx' 
  and ConfigGroup = 'authentication' 
  and Name = 'user_accounts' 
  and Identifier = 'root'
;

注入密钥

/usr/lib/vmware/sqlite/bin/sqlite3 /tmp/var/lib/vmware/configstore/backup/current-store-1
# 进入数据库,更新密码为P@ssw0rd456
update config set UserValue='{"name":"root","password_hash":"$6$TQSuipF384bW8Ggf$PjUJ46McgVBwqUGcJjSFD241tpXXPvedUPwwLEHS9i64l0fREBtvxCdxmWelDwBz0Vc28bbAMZtLJEqE8Yri70","description":"Administrator"}' where Component='esx' and ConfigGroup = 'authentication' and Name = 'user_accounts' and Identifier = 'root'
;

重新打包并恢复

在Esxi系统里面打包

rm -f local.tgz
tar -cvf local.tgz .ssh/ etc/ var/

将local.tgz文件拷贝回Linux操作系统

rm -rvf state.tgz
tar -cvf state.tgz encryption.info local.tgz

拷贝回服务器并重启

重启后可以使用

P@ssw0rd456

进行登录