忘记Linux服务器登录密码时,最直接的办法是进入单用户模式重置,或者使用云平台提供的救援与重置功能,根本不需要重装系统。 这篇文章会按不同服务器环境,给你一套从实操到预防的完整方案,无论你是自己租的物理机,还是买了主流云服务器,都能找到对应的解决路径。
linux服务器忘记密码怎么办?先冷静判断环境
密码丢失后的第一反应不应该是慌乱,而是花三十秒确认两件事:你的服务器是物理机还是云服务器?引导系统是GRUB还是GRUB2?这两个答案直接决定后面该走哪条路。
- 物理机/自建机房:通常能接触到本地显示器或键盘,适合用单用户模式或救援模式。
- 云服务器:多数情况无法直接看到屏幕,但控制台往往自带“重置密码”功能,操作更简单。
- 不确定系统版本:登录云厂商控制台查看系统镜像信息,或者在本地机器上用
ssh连接时看欢迎语,一般会显示CentOS Linux 7或Ubuntu 20.04之类的字样。
判断清楚后,再按下面的方法动手,如果一台服务器同时有SSH密钥和密码,且你连密码都忘了,那重置后密钥还能继续用,不影响原有登录方式。
通过单用户模式重置密码(适合自建物理机)
单用户模式是Linux自带的最小运行环境,不需要输入密码就能拿到root权限,这是最常见、最不需要外部工具的方法,前提是你有物理控制权,或者通过带外管理卡(如IPMI)能看到启动界面。
centos7忘记root密码的详细操作步骤
CentOS 7用的是GRUB2引导,重置密码的步骤比较固定,我按实际手敲命令的顺序写出来,你照着做就行。
- 重启服务器:在终端里执行
reboot,如果服务器根本进不去,直接按机箱上的重启键。 - 进入GRUB菜单:开机时看到黑色或蓝色界面后,快速按键盘上的
e键,进入编辑模式。 - 找到linux16行:在编辑界面里,寻找以
linux16开头的那一行(较新版本可能是linux),这行的末尾通常写着rhgb quiet或console=tty0。 - 添加rd.break参数:把光标移到行尾,加一个空格,然后输入
rd.break,这个参数会让系统在切换根目录之前停下来,进入带有root shell的紧急环境。 - 按Ctrl+x启动:系统会运行一段时间,最终落在类似
switch_root:/#的提示符下。 - 挂载根文件系统为可写:默认情况下,
是只读的,先执行/sysroot
mount -o remount,rw /sysroot,把真正的根目录挂载为可写。 - 进入实际的系统根目录:执行
chroot /sysroot,这一步相当于你从急救环境切换到了原本的Linux系统。 - 修改root密码:执行
passwd root,系统会提示你输入两次新密码,注意,密码不会显示在屏幕上,这是正常现象。 - 处理SELinux标签:如果你确认系统开启了SELinux(CentOS默认开启),必须执行
touch /.autorelabel,否则重启后可能会因为安全上下文问题导致无法正常登录。 - 退出并重启:依次执行
exit退出chroot,再执行exit退出挂载后的shell,最后用reboot或Ctrl+Alt+Del重启服务器。
等系统启动完成后,用新密码登录,整个过程就结束了。
Debian/Ubuntu系统下的单用户模式差异
Debian和Ubuntu的引导方式与CentOS类似,但参数不同,在GRUB菜单按e后,找到以linux开头的那一行,把行尾的ro quiet改成ro single或init=/bin/bash,然后按Ctrl+x启动。
如果用的是init=/bin/bash,系统会直接进入bash,但根文件系统可能还是只读的,你需要先执行mount -o remount,rw /,然后执行passwd root,最后重启,Debian系列没有SELinux的强制标签问题,所以不需要执行autorelabel。
使用救援模式(当系统损坏或无法引导时)
如果单用户模式因为内核损坏、引导配置错误等原因进不去,或者你的服务器在远程机房而手边没有物理键盘,救援模式是更稳妥的方案,大部分Linux发行版安装镜像都自带救援功能,云服务商也提供类似的救援盘。
到这里,先给你一个实用对比表,方便快速决策:
| 场景 | 推荐方式 | 复杂程度 | 所需条件 |
|---|---|---|---|
| 物理机,能接触键盘 | 单用户模式 | 较低 | GRUB菜单可见 |
| 系统无法引导 | 救援模式 | 中等 | 安装镜像或救援盘 |
| 云服务器 | 控制台重置 | 最低 | 云厂商账号权限 |
| 磁盘加密(LUKS) | 救援模式+密码 | 较高 | 需要原本的密钥 |
使用安装镜像进入救援模式的具体操作
- 将同版本或更高版本的Linux安装光盘(或U盘)插入服务器,通过BIOS设置从该介质启动。
- 在启动菜单中选择“Rescue a broken system”或“Troubleshooting”选项。
- 选择语言和键盘布局后,系统会提示你选择安装前是否已挂载原系统,选“Continue”,它会自动扫描硬盘。
- 当提示“找不到Linux分区”时,你需要手动选择自己的根分区(通常是
/dev/sda2或/dev/mapper/xx-root)。 - 系统会挂载原系统到
/mnt/sysimage,并给出一个shell,这时执行chroot /mnt/sysimage。 - 在chroot环境里直接运行
passwd root,修改完成后输入exit,重启时记得拔掉安装介质,再次进入硬盘系统。
救援模式同样存在一个陷阱:如果你的根分区使用了LUKS磁盘加密,那么救援环境会要求你先解锁加密分区,才能看到里面的数据,没有原本的加密密码或密钥文件,这个方案也无法生效,这时只能考虑数据恢复机构介入,属于极端情况。
云服务器修改登录密码的重置方案(含控制台操作)
云服务器是当前的主流环境,与物理机不同,云平台提供了“重置密码”这样的官方入口,相当于直接帮你改密码,不需要你自己折腾引导项,以简米云和酷番云为例,操作路径都差不多:
- 简米云:登录控制台 → ECS实例列表 → 选中实例 → 更多操作 → 密码/密钥 → 重置实例密码。
- 酷番云:登录控制台 → CVM实例列表 → 选中实例 → 更多操作 → 密码/密钥 → 重置密码。
重置时,云平台会要求你设置新密码,并给出强度校验(通常需要大小写字母、数字和特殊符号的组合),设置完成后,必须重启实例才能生效,这个操作不会影响已部署的数据和配置,只会把root用户(或默认用户)的密码替换掉。
如果你的云服务器使用的是SSH密钥对,即使密码密码忘了,密钥登录也不会中断,反过来,如果密钥丢失且密码也忘了,控制台重置是唯一出路。
云服务器重置密码的注意事项
- 重置前如果服务器正在运行重要业务,建议先创建快照,以防万一。
- 重置后旧密码立即失效,所有基于旧密码的服务(比如某些脚本、定时任务)可能会认证失败,需要同步更新。
- 部分云平台支持“强制下次登录时修改密码”的选项,不勾选就行。
- 如果服务器开启了防火墙或安全组,重置密码后依然要确保自己的IP在放行范围内,否则可能连不上。
云厂商的控制台重置功能本质上是远程救援的一种变体,它绕过了物理访问的限制,让“服务器修改登录密码”这件事变得非常简单,即便你是刚接触Linux的新手,也不需要了解GRUB或chroot,几分钟就能搞定。
密码重置后的安全加固建议
密码找回来只是第一步,很多服务器被入侵,恰恰是因为密码太简单或者长期不换,业内专家指出,定期更换root密码并配合密钥登录,是防护暴力破解最基础的做法。
- 使用
passwd命令定期更换密码,建议每三个月一次。 - 禁用root密码直接登录,改用密钥:编辑
/etc/ssh/sshd_config,设置PermitRootLogin prohibit-password,然后重启sshd服务。 - 安装
fail2ban用来自动封禁多次登录失败的IP地址,这个工具直接通过包管理器安装即可。 - 开启SELinux或AppArmor,它们是Linux自带的强制访问控制模块,能限制权限提升路径。
- 不要在多个服务器上重复使用同一套密码,否则一台泄露,全线崩溃。
所有这些措施完成后,你应该养成一个习惯:把密码记录在离线密码管理器中,而不是随手写在文本文件里。 如果担心自己依然会忘,还可以提前把公钥上传到服务器上,这样即使密码下次忘了,仍然能通过SSH密钥进入系统执行修改。
常见问题解答(Q&A)
Q1: 单用户模式进去后,执行passwd提示失败,怎么办?
常见原因是根分区不是可写状态,确认你是否执行了mount -o remount,rw /sysroot和chroot /sysroot,如果是在chroot环境中执行还是失败,检查磁盘空间是不是满了,df -h看根分区的使用率,有些系统强制要求密码长度不低于8位且包含特殊字符,太简单的密码会被拒绝。
Q2: 重置密码后,SSH一直提示Permission denied,是什么原因?
可能是SSH服务使用的PAM模块缓存了旧的认证信息,重启一下systemctl restart sshd试试,也可能是云平台的安全组没有放行新IP,检查源地址是否在你的白名单内,如果依然不行,检查/var/log/secure里的具体报错,大多数问题会直接体现在日志中。
Q3: 云服务器控制台重置密码会丢失数据吗?
不会,控制台重置密码只修改系统用户的认证凭据,不涉及数据盘、系统盘文件或现有配置,它跟重装系统完全不是一回事,但要注意,重置后的服务器需要重启才能生效,重启前建议先给关键数据做快照,避免重启过程中出现意外断电等风险,重启期间业务会短暂中断,时间一般在几分钟内。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/718689.html





