服务器忘记密码怎么重置?Linux 常用三种方法
Linux 服务器忘记 root 或普通用户密码时,能否重置取决于你有没有控制台权限和系统盘访问权限。
云服务器优先用控制台自带的密码重置功能,物理机或自建虚拟机可以进单用户模式改密码,系统损坏或加密盘则可能需要 LiveCD。
下面按场景说明操作和验证方法。
先确认你有哪种恢复入口
不同环境的恢复入口不同,先判断再动手:
- 云服务器:登录云厂商控制台,找到实例的“重置密码”或“远程连接”功能。多数云厂商支持关机后重置,部分支持在线重置,以控制台实际按钮为准。
- 物理机或自建虚拟机:需要能接触 GRUB 菜单或挂载系统盘。有 iDRAC、IPMI 或虚拟机控制台时,可以发送 Ctrl+Alt+Del 重启并进入 GRUB。
- 系统盘可拆卸:把磁盘挂到另一台 Linux 机器上,用
chroot修改密码,适用于文件系统未加密的情况。
无论用哪种方式,操作前先做快照或备份。
重置密码本身风险不高,但误改 GRUB、误挂载或中断启动可能导致系统无法进入。
方法一:云控制台重置密码
这是最省事的方式,适合阿里云、腾讯云、华为云等主流云平台。
- 登录云控制台,进入实例列表,找到目标服务器。
- 先关机,或按控制台提示选择“重置密码”入口。部分平台要求实例处于“已停止”状态。
- 输入新密码,确认后等待重置完成。
- 开机,用新密码通过 SSH 或控制台登录。
如果控制台重置后仍无法登录,检查安全组是否放行 SSH 端口,以及是否用错了用户名。
云服务器默认用户名可能是 root、ubuntu 或 centos,以镜像为准。
方法二:GRUB 单用户模式改密码
适用于能进入 GRUB 菜单的 CentOS、Ubuntu、Debian 等系统。
重启服务器,在 GRUB 菜单出现时按 e 编辑启动项。
找到以 linux 或 linux16 开头的行,在行尾追加:
rw init=/bin/bash
按 Ctrl+X 启动,进入 root shell 后执行:
mount -o remount,rw /
passwd root
输入两次新密码。
如果系统启用了 SELinux,需要创建重标记文件:
touch /.autorelabel
然后执行 exec /sbin/init 或重启。
注意:如果原启动参数里有 ro,必须改成 rw,否则根文件系统只读,passwd 会报错。
如果 GRUB 被密码保护,单用户模式无法直接进入,需要先清除 GRUB 密码或使用 LiveCD。
方法三:LiveCD 挂载系统盘修改
当 GRUB 进不去、系统盘可以挂载时,用 LiveCD 或另一台 Linux 机器挂载原系统盘。
以 Ubuntu LiveCD 为例,启动后打开终端,确认系统分区:
lsblk
假设根分区是 /dev/sda2,挂载并 chroot:
mount /dev/sda2 /mnt
mount --bind /dev /mnt/dev
mount --bind /proc /mnt/proc
mount --bind /sys /mnt/sys
chroot /mnt
passwd root
修改完成后退出 chroot,卸载分区并重启。
如果根分区在 LVM 上,需要先激活卷组:vgchange -ay。
如果磁盘加密,这种方法不适用,需要恢复密钥或重装系统。
改完密码后怎么验证
不要只看到 passwd 提示成功就结束。
重启后先用控制台登录,确认新密码有效,再检查 SSH:
ssh root@服务器IP
如果 SSH 仍提示密码错误,检查 /etc/ssh/sshd_config 中的 PermitRootLogin 和 PasswordAuthentication 是否被设为 no。
若之前禁用了密码登录,需要先用控制台登录并调整配置,再重启 SSH 服务:
systemctl restart sshd
最后确认普通用户和 sudo 权限正常,避免只改了 root 密码却影响业务账号。
容易踩坑的几个地方
- 根分区只读:单用户模式启动后先执行
mount -o remount,rw /,否则改密码会失败。 - SELinux 导致登录异常:CentOS 等系统改密码后如果无法登录,检查是否创建了
/.autorelabel,让系统下次启动重新标记文件上下文。 - GRUB 密码保护:如果 GRUB 菜单需要密码,单用户模式走不通,需要从 LiveCD 或云控制台处理。
- 云服务器重置后未生效:确认实例已重启,部分平台重置密码需要关机再开机才生效。
- 不要直接删除密码:把 root 密码设为空会带来安全风险,应设置强密码并检查 SSH 登录策略。
服务器忘记密码怎么重置,核心是选对恢复入口:云服务器先用控制台,能进 GRUB 用单用户模式,系统盘可挂载用 chroot。
操作前备份,改完用控制台和 SSH 双重验证,才能确认问题真正解决。