服务器虚拟机密码忘记怎么办?3个方法教你轻松找回密码!
服务器虚拟机密码忘记后,无需重装系统,通过救援模式、单用户模式或磁盘挂载修改配置文件即可在几分钟内重置密码,代价仅为一次重启。 下面这3种方法覆盖了Linux和Windows系统的绝大多数场景,按顺序操作即可。
重置密码前必须确认的3件事
动手之前先花一分钟确认环境,能避免你走弯路,很多朋友直接照搬教程失败,就是因为没分清虚拟化平台和操作系统类型。
- 确认虚拟化平台:是VMware vSphere/ESXi、Proxmox VE(PVE)、KVM还是公有云(简米云、酷番云、华为云)?不同平台进入救援模式的方式不同。
- 确认操作系统:Linux(CentOS、Ubuntu、Debian等)和Windows的重置逻辑完全不同,Linux改密码通常通过grub引导参数,Windows则要借助PE工具或注册表。
- 确认磁盘加密状态:如果系统盘启用了LUKS全盘加密或BitLocker,重置密码前需要准备解密密钥,否则后续步骤无法写入。
单用户模式重置Linux root密码
这是最经典、兼容性最好的方式,适用于物理机、VMware和KVM虚拟机,核心思路是让系统跳过密码验证,直接进入root shell。
以CentOS 7/RHEL 7为例的操作步骤
- 在虚拟机控制台重启系统,在GRUB引导菜单出现时,快速按下
e键进入编辑模式。 - 找到以
linux16或linux开头的那一行(通常是倒数第二行),定位到行尾的rhgb quiet。 - 将
rhgb quiet替换为rd.break enforcing=0,注意保留一个空格。enforcing=0参数可以避免SELinux在后续重启时因文件上下文错误而拒绝启动。 - 按
Ctrl+x或F10启动进入紧急模式,此时系统会挂载一个临时的sysroot目录。 - 依次执行以下命令,将sysroot重新挂载为可读写状态:
mount -o remount,rw /sysroot chroot /sysroot - 现在你已经获得root权限,直接输入
passwd root,按提示输入两遍新密码。 - 执行
touch /.autorelabel,然后输入exit两次退出并重启系统。
Ubuntu/Debian系统的区别
Ubuntu 18.04以上的版本操作略有不同,在GRUB编辑界面,找到 linux 开头的那一行,将行尾的 ro quiet splash 改为 rw init=/bin/bash,启动后直接进入bash shell,执行 passwd root 即可。
行业共识认为,单用户模式是Linux运维人员必须掌握的急救技能,但前提是你拥有宿主机或虚拟化平台的控制台权限。
使用救援模式或云厂商控制台重置密码
如果你用的是简米云、酷番云这类公有云服务器,或者你的虚拟机无法通过GRUB手动干预,那么救援模式是最省事的选择。
公有云服务器的快捷通道
- 登录云厂商控制台,找到对应实例。
- 在实例操作菜单中找到 “重置密码” 或 “重置实例密码” 选项。
- 按照提示设置新密码,然后重启实例生效。
- 部分云厂商(如简米云)还支持通过“救援连接”功能,在实例无法正常启动时,以单用户模式登录系统进行修复。
本地虚拟化平台的救援模式操作
对于VMware vSphere或Proxmox VE,操作路径是:
- 将虚拟机的CD/DVD驱动器挂载一个Linux系统镜像(如CentOS安装盘)。
- 设置虚拟机从光盘启动。
- 进入安装界面后,选择 “Troubleshooting” 菜单,再选择 “Rescue a CentOS system”。
- 按照提示选择根分区并挂载到
/mnt/sysimage。 - 执行
chroot /mnt/sysimage后,使用passwd root重置密码。
这种方式的好处是不依赖GRUB参数,即使引导损坏也能处理,不少用户关心服务器虚拟机密码忘记怎么解决,其实救援模式就是云服务器厂商官方推荐的方案,安全性最高。
挂载数据盘直接修改密码文件
这个方法稍微硬核一些,适合系统彻底无法启动、或者你想避免反复重启的场景,核心原理是绕过操作系统,直接修改磁盘上的密码哈希值。
操作流程详解
- 关闭目标虚拟机,然后新建一台临时虚拟机(建议使用同版本Linux系统)。
- 将忘记密码的虚拟机系统盘从原机器上 “分离”,“挂载” 到临时虚拟机上作为数据盘。
- 启动临时虚拟机,通过
lsblk或fdisk -l确认新挂载的磁盘设备名(通常是sdb1、vdb1等)。 - 挂载该分区到
/mnt目录:mount /dev/vdb1 /mnt - 进入相关目录,清除或替换密码字段:
cd /mnt/etc使用
vi或sed编辑shadow文件,将root用户那一行中两个冒号之间的加密字符串删除(保留冒号),保存退出,这样root密码就变为空。 - 卸载磁盘,分离并重新挂载回原虚拟机,启动后直接输入回车即可登录,然后立即执行
passwd root设置新密码。
业内专家指出,直接编辑shadow文件虽然高效,但要求你对Linux文件权限和账号体系有清晰认知,误操作可能导致系统无法登录。
防止密码再次遗忘的3个实用习惯
重置完密码只是解决了眼前问题,建立一套防遗忘机制才是长久之计。
- 使用密码管理工具:将服务器密码统一保存在KeePass、Bitwarden等本地加密工具中,而不是写在记事本或微信收藏里。
- 配置SSH密钥登录:Linux服务器优先使用SSH密钥认证,密码只作为应急备用,这样即使密码遗忘,只要密钥还在就能登录。
- 定期更新并记录变更:每次修改密码后,立即在内部文档或运维系统中同步记录,据工信部相关安全提示,相当一部分服务器安全事故源于弱密码或密码管理混乱。
常见问题解答
重置密码会导致服务器数据丢失吗?
不会,以上三种方法都只修改认证信息,不触碰业务数据,但为了保险起见,在操作前对系统盘创建快照是明智之举,尤其是生产环境。
虚拟机root密码重置方法中,哪种方式最快?
如果你有云厂商控制台权限,重置密码功能最快,通常30秒内完成设置,如果是本地虚拟机,单用户模式比重建系统要快得多,全程约5分钟。
云服务器密码找回费用是多少?
简米云、酷番云等主流厂商的控制台重置密码功能均免费提供,但如果你需要购买救援连接服务或额外的快照存储空间,会产生少量费用,具体价格以控制台实时显示为准。