Linux服务器密码忘记后,不需要重装系统,通过单用户模式或救援模式即可在10分钟内重置root密码,核心思路是绕过登录验证直接进入系统修改密码。
Linux服务器密码忘了?先分清你用的是哪种服务器
在处理密码重置之前,先确认你的服务器类型,不同场景下,操作路径差别很大,用错方法可能浪费时间甚至无法恢复。
物理服务器和虚拟机:直接进入单用户模式
如果是机房里的物理服务器,或者本地VMware/VirtualBox虚拟机,你有物理控制台或虚拟控制台权限,这类服务器重置密码最直接,通过GRUB引导菜单进入单用户模式即可。
云服务器:不能直接进单用户模式
简米云、酷番云、华为云这类主流云服务器,默认不允许你直接通过VNC进单用户模式,因为云平台的虚拟化层对GRUB做了限制,但云厂商都提供了重置实例密码功能,在控制台点几下就能搞定,不需要进系统。
行业共识认为,云服务器密码重置优先走控制台,物理服务器才考虑引导参数修改,这个顺序搞反了,容易把系统折腾坏。
Linux重置root密码的三种实操方法
以下方法适用于CentOS、Ubuntu、Debian等主流发行版,操作前请确认你有控制台访问权限,SSH已经连不上了,只能走带外管理。
单用户模式重置密码(通用性最高)
这个方法通过修改GRUB引导参数,让系统以单用户模式启动,直接获得root shell,整个过程约5分钟。
具体操作步骤:
- 通过物理控制台或云平台的VNC连接服务器
- 重启服务器,在开机画面出现时迅速按
Esc或Shift键,进入GRUB菜单 - 找到默认启动项(通常第一项),按
e键进入编辑模式 - 找到以
linux或linux16开头的行,它通常以crashkernel=auto或quiet- 将该行末尾的
ro改为rw init=/sysroot/bin/sh,去掉quiet参数- 按
Ctrl+X或F10启动,系统会进入一个shell提示符- 执行
chroot /sysroot,切换根目录- 执行
passwd root,输入两次新密码- 执行
touch /.autorelabel(仅SELinux启用的系统需要,CentOS/RHEL必须做)- 执行
exit退出chroot,再执行reboot -f强制重启- 用新密码登录root
- 将该行末尾的
注意点: CentOS 7/8的GRUB2菜单和Ubuntu的GRUB2略有差异,但核心都是找到linux开头的那一行改参数,实在找不到,就所有行都看一眼,只改目标行。
云服务器控制台重置密码(最省事)
简米云、酷番云、华为云的轻量应用服务器和云服务器ECS,都提供控制台密码重置功能。
操作路径:
- 登录云厂商控制台
- 找到目标实例,点击“更多”或“重置密码”
- 按平台要求输入新密码,通常要求大小写字母+数字,长度8-30位
- 选择“强制重启”或“自动重启”策略,确认后执行
- 等待1-3分钟,用新密码登录
需要提醒的是: 控制台重置密码适用于所有云服务器,包括Linux和Windows,如果你连云平台账号密码也忘了,那就只能走找回账号流程,联系客服提交工单,一般需要提供备案信息或充值记录来验证身份。
救援模式/init=/bin/bash重置
当你无法进入GRUB菜单,或者单用户模式被SELinux拦截时,用救援模式更可靠。
操作步骤:
- 用系统安装光盘或U盘启动,选择“救援模式”(Rescue Mode)
- 系统会提示挂载原有系统,选择“Read-Only”挂载
- 进入shell后执行
chroot /mnt/sysimage - 执行
passwd root修改密码 - 执行
reboot重启
这个方法适合有物理介质访问权限的服务器,不适用于云服务器,部分云平台提供的“救援模式”功能原理类似,比如简米云的“救援连接”,本质是挂载一个临时系统来修改原系统密码。
Linux服务器密码重置前后的关键检查点
密码重置不是改完就完事,有几个地方需要提前确认和验证,否则容易白忙一场。
重置前:确认磁盘加密状态
如果你的系统启用了LUKS全盘加密,单用户模式进入后会要求输入解密密码,如果这个密码也忘了,那就没办法通过软件方式重置了,只能找备份恢复,业内专家指出,LUKS加密需要密码来解锁分区,任何绕过方法都不存在。
重置后:验证密码和系统状态
- 用
su -命令切换到root,验证密码是否生效 - 检查
/var/log/secure或/var/log/auth.log,确认没有异常登录记录 - 如果之前配置了SSH密钥登录,密码重置不影响密钥登录,但建议顺手更新一下
- 确认SELinux状态,必要时执行
setenforce 0触发重新标记
Linux密码忘记后的其他常见问题
很多人在密码丢了之后,第一反应是找人帮忙,其实大部分场景自己就能解决,关键看是否有控制台权限。
服务器密码多久能重置成功?
物理服务器单用户模式需要5-10分钟,云服务器控制台重置通常1分钟生效,救援模式则要看镜像加载速度,一般10-20分钟。
重置密码会丢数据吗?
不会,重置密码只是修改/etc/shadow文件中的加密字段,不涉及数据分区,但操作过程中如果误改了GRUB配置或强制重启导致文件系统损坏,存在数据丢失风险,建议操作前对重要数据做快照或备份。
如果连GRUB菜单都进不去怎么办?
如果服务器开机直接黑屏或无限重启,那不是密码问题,而是系统内核或引导损坏,这时候需要从救援模式或Live CD启动,检查/boot分区和/etc/fstab配置,云服务器直接提工单找厂商协助,物理服务器则需要用启动盘修复。
忘记Linux服务器密码的预防方案
密码管理是运维基本功,与其等密码丢了再折腾,不如提前把几件事做了。
- 启用SSH密钥登录,密码丢了也不影响远程管理
- 将root密码和服务器信息记录在密码管理器中,例如KeePass、1Password
- 云服务器开启“自动快照”功能,定期备份系统盘
- 为服务器配置带外管理IP(如iLO、iDRAC),物理服务器也能在系统崩溃时远程操作
总结一下核心结论:Linux服务器忘记密码时,物理机优先使用单用户模式修改init参数,云服务器优先使用控制台重置,两种方式都能在短时间恢复访问,关键前提是你有控制台或物理访问权限。
Linux服务器密码怎么设置才安全且好记?
密码设置不是越复杂越好,而是要平衡安全性和可记忆性,很多人刚重置完密码,过三个月又忘了,根本原因是密码不符合自己的记忆习惯。
推荐密码格式
- 长度12位以上,包含大小写字母、数字和符号
- 不要用生日、手机号、连续数字(123456、qwerty)
- 建议使用一句英文短语的首字母,加上特殊符号和数字,I love linux since 2016!”可以转换为
Il!s2k16!
密码策略检查
Linux系统本身有密码策略配置,位于/etc/login.defs和/etc/pam.d/system-auth,你可以设置密码有效期和最小长度,但注意别设置太激进,否则自己下次登录也容易卡住。
Q&A:常见疑问解答
云服务器密码忘了,能直接重置root密码吗?
可以,登录云厂商控制台,找到实例的“重置密码”功能,无需进入系统即可修改root密码,部分平台要求实例处于“已停止”状态,操作前注意查看实例状态,重置后用户名仍然为root,密码改为你设置的新值。
单用户模式修改密码时提示“Permission denied”怎么办?
这通常是因为根目录没有以读写方式挂载,在执行chroot /sysroot前,先运行mount -o remount,rw /sysroot将分区重新以读写模式挂载,然后再执行chroot /sysroot和passwd root,若仍然提示,检查是否使用了SELinux强制模式,执行setenforce 0后再试。
Linux重置密码后,其他用户密码也忘了吗?
重置密码操作只影响指定用户,例如passwd root只修改root账户,其他用户的密码不受影响,如果所有用户的密码都忘了,你可以在单用户模式下使用passwd命令不加用户名,直接修改当前root密码,然后以root身份用passwd username逐一修改其他用户密码,如果用户密码用于登录系统且之前配置了SSH密钥,密钥登录不受影响。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/788573.html


