開始輸入,可搜尋發票、服務、域名、工單,以及 更多...
伺服器 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 小時響應。