开始输入,可搜索发票、服务、域名、工单,以及 更多...
服务器 root 密码丢失且没有配置密钥登录时,SSH 已无法进入,但只要能访问服务器的控制台,就可以在启动阶段重置密码。本文介绍三种常用方法:GRUB 中使用 rd.break(RHEL 系)、init=/bin/bash(通用)以及救援模式挂载磁盘修改,帮你在不重装系统、不丢数据的前提下找回访问权限。
rd.break 重置 root 密码,并且必须执行 touch /.autorelabel 让 SELinux 重新标记文件上下文。linux 行追加 init=/bin/bash 进入 shell 后用 passwd root 重置密码。chroot 修改 root 密码。rd.break);Ubuntu 22.04/24.04、Debian 12(推荐 init=/bin/bash)。CentOS 7 等旧系统同样适用 rd.break。在 VNC 控制台中发送 Ctrl+Alt+Del 或在客户中心执行重启。看到 GRUB 启动菜单时迅速按方向键停住;Ubuntu 默认隐藏菜单,可在开机时按住 Shift(BIOS 启动)或连续按 Esc(UEFI 启动)调出。
选中默认内核,按 e 进入编辑模式,找到以 linux 开头的那一行(RHEL 系可能是 linux 或 linuxefi)。
在 linux 行末尾追加 rd.break,若存在 console=ttyS0 之类的串口参数而 VNC 无输出,可将其删除。按 Ctrl+X 启动,进入 switch_root:/# 提示符后依次执行:
mount -o remount,rw /sysroot
chroot /sysroot
passwd root
touch /.autorelabel
exit
exit
touch /.autorelabel 必不可少:它让 SELinux 在下次启动时重新标记文件上下文,否则可能因 /etc/shadow 标签错误而无法登录。重新标记需要几分钟,期间系统会自动再重启一次,请耐心等待。
在 linux 行中把 ro 改为 rw,删除 quiet splash,并在行末追加 init=/bin/bash,按 Ctrl+X 或 F10 启动。得到 root@(none):/# 提示符后执行:
mount -o remount,rw /
passwd root
sync
exec /sbin/init
此模式下 systemd 未运行,普通的 reboot 命令无效,因此用 exec /sbin/init 继续正常启动。若系统卡住,可在 VNC 中执行 echo b > /proc/sysrq-trigger 强制重启(务必先 sync)。
提示:
init=/bin/bash同样适用于 RHEL 系,但之后仍需touch /.autorelabel。
如果 GRUB 设置了密码或 VNC 看不到菜单,可使用救援系统(Rescue)。若客户中心未提供救援模式入口,请提交工单申请挂载救援 ISO。进入救援系统后:
lsblk -f # 找到原系统根分区,例如 /dev/vda1
mount /dev/vda1 /mnt
# 若根分区是 LVM,先执行 vgchange -ay,再挂载 /dev/mapper/xxx-root
for d in dev proc sys; do mount --bind /$d /mnt/$d; done
chroot /mnt passwd root
touch /mnt/.autorelabel # 仅 SELinux 系统(Rocky/Alma)需要
umount -R /mnt
reboot
用新密码通过 SSH 登录。如果仍提示 Permission denied,检查 /etc/ssh/sshd_config.d/ 中是否禁用了 root 密码登录——这种情况下应改用 VNC 登录后配置 SSH 密钥。重置完成后建议立即配置密钥认证,并把密码保存进密码管理器。
不会。以上方法只修改 /etc/shadow 中的密码哈希,不会改动网站、数据库等业务数据。但操作控制台存在误操作风险,建议事先备份。
最常见原因是漏了 touch /.autorelabel,SELinux 拒绝读取新的 shadow 文件。重新进入 rd.break 补上该命令即可。
部分云产品可能支持在线重置,但这依赖镜像中的代理程序与产品类型。请以 IMIDC 客户中心产品详情页的实际功能为准,若没有相关入口,可按本文手动操作或提交工单。
可能是键盘布局不一致,尽量避免输入特殊符号,先设一个简单的临时密码,登录 SSH 后再用 passwd 改为高强度密码。
只要拥有控制台访问权限,忘记 root 密码并不需要重装系统:RHEL 系优先使用 rd.break 并记得自动重标记 SELinux,Debian/Ubuntu 使用 init=/bin/bash,GRUB 不可用时再借助救援模式。IMIDC 的云 VPS 提供 VNC 控制台用于此类应急恢复,独立服务器的远程控制或救援需求可通过客户中心工单提交,技术团队 7x24 小时响应。