linux服务器初始账号密码忘了别慌,多数情况下不需要重装系统,用对方法(云控制台重置、救援模式或单用户模式)十几分钟就能找回控制权。
先说明一个容易被忽略的事实:这台服务器是云服务器还是物理机,直接决定了你用哪条路,不少朋友上来就百度“linux服务器密码忘了怎么办”,结果照着教程敲了一堆grub命令,折腾半天发现压根没用,因为云服务器根本没有本地显示器,所以第一步不是背命令,是先搞清楚你面对的是什么环境,然后再动手,效率高得多。
linux服务器密码忘了怎么找回:先判断场景再动手
在决定用哪种方法之前,花两分钟做个快速自查,这个步骤能帮你滤掉一大半无效操作,省下不少冤枉时间。
云服务器(简米云、酷番云、华为云等)
核心判断标准:你登录网页控制台能不能看到这台机器的“远程连接”或“VNC登录”入口,只要能看到,就说明这是一台典型的云服务器。
这类机器最可靠的重置方式不是去按什么键盘快捷键,而是直接用厂商提供的控制台重置功能,操作方法大致分两步:
- 登录云厂商官网,进入实例列表
- 找到目标机器,点击“更多”或“运维”菜单,选择“重置密码”(有的厂商叫“修改密码”)
重置后一般需要强制重启才能生效,这个路径是官方设计的,不依赖系统内部状态,哪怕系统已经损坏到只剩内核引导,也能强制改掉root密码,据行业共识,绝大多数云账号的售后工单里,“自己折腾grub导致系统起不来”的比例远高于“密码本身丢了的比例”,所以老实走控制台,别乱敲命令。
物理机或自建机房服务器
如果你手里是一台有显示器、键盘的实体服务器,进不去系统的老办法依然有效:在grub引导界面进入单用户模式,重置root密码,步骤不复杂,但需要手快:
- 重启服务器,在grub菜单界面按
e进入编辑模式 - 找到以
linux或linux16开头的行,在末尾追加rd.break(CentOS 7/8)或直接切到single(老版本系统) - 按
Ctrl+X启动,进入紧急模式后依次执行下列命令:
mount -o remount,rw /sysroot chroot /sysroot passwd root touch /.autorelabel exit reboot
这个方法的原理是绕开正常的登录认证流程,直接让内核以最小权限拉起一个shell给你操作。核心前提是你物理上摸得到这台机器,对比云服务器,云场景下即便你敲出了单用户模式,没有控制台也看不见界面,等于白干。
救援模式(Rescue Mode)当备用方案
如果单用户模式进不去(比如系忘了密码的linux服务器应急手段不限于系统本身,很多云厂商还提供“救援模式”),它的本质是:用一个独立的微型Linux系统启动你的服务器磁盘,然后挂载原系统分区进行修改,适合系统已经无法正常引导的情况。
在救援模式下,典型的操作链是这样的:
- 进入救援系统后,先
lsblk查看磁盘分区结构 - 挂载根分区到
/mnt/sysroot(常见路径/dev/vda1或/dev/sda1) - 用
chroot /mnt/sysroot切换进去,执行passwd root
和单用户模式比,救援模式的安全度更高,因为它不会触发SELinux重打标签的额外耗时,适合赶时间恢复业务的场景。
linux服务器重置root密码的通用思路与系统版本差异
上面讲了两条主干道云控制台重置、物理机单用户模式,但实际落地时会因为系统版本出现一些坎,提前打个预防针。
CentOS 7 与 RHEL 7 的 rd.break 细节
CentOS 7是最常见的生产环境老版本,它的grub2和旧版有区别,在linux16 /vmlinuz-...行尾追加的是 rd.break,而不是 single,进入紧急shell后系统根目录是只读的,务必先执行 mount -o remount,rw /sysroot,再 chroot /sysroot,否则会卡在“passwd: cannot create /etc/passwd”这种报错上。
Ubuntu 与 Debian 的 recovery 模式
Ubuntu Server没有rd.break的机制,但grub菜单里有现成的 Advanced options for Ubuntu,选里面的 recovery mode,再选 root Drop to root shell,挂载为读写后同样 passwd root,不同点在于Ubuntu默认root密码锁定,重置后建议顺手执行
passwd -u root 解锁账户。
新版本系统:Rocky Linux、AlmaLinux 与 Ubuntu 24.04
其实方法没怎么变,只是内核参数名稍有出入,Rocky Linux 9和AlmaLinux 9依然兼容 rd.break,但新内核升级后,部分旧教程里的 quiet 参数会导致黑屏,容易误判死机,建议在grub编辑时临时删掉 quiet 和 rhgb 两个参数,让内核输出日志直接打在屏幕上,能清晰看到命令输入是否生效。
实操vs外包:自己重置还是花钱找人处理
有些朋友会想:自己对命令不太熟,花个几十块找个远程运维帮忙搞掉算了,我建议先分清优先级。
| 处理方式 | 适用场景 | 大致成本 | 风险点 |
|---|---|---|---|
| 控制台重置 | 云服务器/轻量服务器 | 无额外费用,只需几分钟 | 需提供身份验证,可能强制重启 |
| 单用户模式 | 物理机、KVM虚拟机 | 无额外费用,需现场操作 | 手误删除selinux标签,可能导致启动异常 |
| 救援模式 | 系统无法引导、黑屏 | 按占用时长计费(国外厂商按小时收费) | 分区挂载错误可能破坏数据 |
| 外包代维 | 完全不想碰命令行 | 城市不同报价不同,一般在100元-300元区间 | 涉及账号密码的敏感沟通,建议确认对方资质 |
多数情况下,只要不是硬盘物理损坏,自己通过厂商自带工具就能解决。外包只建议留给那些系统已经彻底找不到引导、需要文件级救援的场景,这种局势下专业工具和数据恢复经验更靠谱。
重置完成后的三个收尾动作,避免二次遗忘
密码改完,不代表就结束了,这步不做,下周一你大概率又得再搜一次“linux服务器初始账号密码忘了怎么办”。
- 修改
/etc/ssh/sshd_config里的PermitRootLogin行为,把默认的yes改为prohibit-password(即仅允许密钥登录),这样即使密码泄露,远程也没法直接用root登录 - 如果之前配置过免密登录,记得在
/root/.ssh/authorized_keys里确认公钥是否还匹配,因为重置密码不会动这个文件
- 顺手把SSH端口从默认的22改到非标准端口(如
8822),能有效减少被暴力扫描破解密码的概率,据可靠数据,网络空间里面向22端口的恶意扫描从未间断过,这是安全运维的基础共识
应对文全:几组常用命令速查
重置Linux密码这条路线里,很多命令是跨发行版通用的,值得记下来备用。
- 修改密码:
passwd root - 锁定账户:
passwd -l root(避免别人用root直接登录) - 解锁账户:
passwd -u root - 查看哪些用户有sudo权限:
grep -E 'sudo|wheel' /etc/group - 强制所有用户重新登录:
pkill -KILL -u 用户名(慎用)
仅用一张表就能覆盖大多数场景:CentOS/RHEL用rd.break,Ubuntu用recovery mode,云服务器优先控制台面板。
核心问题Q&A
忘记linux服务器密码后,原来系统的数据会丢吗
不会,重置root密码的行为只是修改认证数据库里的哈希值,不会删除或覆盖文件,但要注意:如果你在单用户模式或救援模式下执行了错误的挂载操作(比如把磁盘格式化),这种人为失误确实可能导致数据丢失,所以操作前用 lsblk 和 df -h 确认磁盘挂载点,是保护数据的前提。
linux服务器密码忘了且绑定的手机号也注销了,怎么找回
这种情况属于账号级找回不涉及系统内部,控制在云厂商面板里解决:通常可以通过实名认证信息、企业资质证件、历史充值记录等方式通过人工申诉流程拿回控制权,如果连这些都没有,那这台机器就真的属于物理失控状态,只能联系机房或走数据恢复路线。
重置linux root密码后,SSH登录提示Permission denied怎么办
密码本身改成功了,但SSH拒绝登录,多半是密钥认证优先级太高导致密码方式被绕过,解决办法:编辑 /etc/ssh/sshd_config,找到 PasswordAuthentication 项,确保值为 yes(注意有些系统里它被注释掉,默认是no),然后重启服务 systemctl restart sshd,这个场景在CentOS镜像里尤其常见。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/706423.html





