导读:密码记错、密码本丢了、接手别人的机器没有凭证——SSH连不上,网站还在跑,数据都在盘上,这时候千万别急着DD重装把数据全清掉。绝大多数KVM架构的VPS商家都提供VNC(或叫noVNC、控制台)入口,它不依赖SSH和网络配置,等于直接给你接了一台显示器。这篇讲怎么用VNC进入系统的救援模式改密码:Debian/Ubuntu的GRUB单用户方案,全程十几分钟,数据一根毛都不掉。
一、先确认你属于哪种情况
三种连不上的情况,对症下药:
1. 密码忘了或错了:SSH提示Permission denied,但机器本身正常(网站能访问)——本文的方案适用;
2. 系统坏了:连VNC都看不到登录界面,卡在GRUB或黑屏——那是系统修复或DD重装的活;
3. 密钥丢了没备份:禁用了密码登录只留密钥——同样走本文流程,进单用户模式后重配SSH。
二、找到VNC入口
登录商家控制面板,找这些关键词:VNC、noVNC、Console、控制台、远程控制台。不同商家叫法不一,但KVM机器基本都有。
点开后会弹出一个网页窗口,里面就是你这台机器的屏幕画面。第一次用注意两点:
键盘布局可能是美式,输入密码时符号位置可能和你键盘不一致;
窗口获取焦点的规则各不相同(有的要先点一下屏幕区域),敲键盘没反应就先点一下画面。
三、核心流程:GRUB进单用户模式
重启机器前先把VNC窗口盯住,因为GRUB菜单只显示几秒。在VNC里按重启,或者用面板的重启按钮。
机器启动时紧盯屏幕,出现GRUB菜单(通常显示Debian字样的选项列表)的瞬间,快速按方向键停在菜单上。手速不够就多试两次,失败成本只是再重启一次。
选中默认启动项(第一项),按 e 编辑启动参数。
找到加载内核的那一行(以linux开头的长行),把行尾部分改掉:把 ro 后面的内容删掉(可能有一串quiet splash之类),改成:
rw init=/bin/bash
也就是让内核以读写方式挂载根分区,然后直接给你一个bash。改完按 Ctrl+X(或F10,界面有提示)启动。
四、改密码并收尾
几秒后你会直接看到一个bash提示符,你就是root本尊,不需要密码。
改密码:
passwd root
按提示输入两次新密码。注意输入时屏幕不显示任何字符是正常的,不是卡了。
顺手把SSH的密码登录打开(如果你之前关过):编辑SSH配置,把PasswordAuthentication改成yes。vi基础操作:方向键移动,i进入编辑,Esc退出编辑,冒号加wq回车保存。
vi /etc/ssh/sshd_config
改完密码执行同步并重启:
sync
exec /sbin/init
机器正常重启。这次SSH用新密码登录,一切如常,数据完好。
五、按系统微调
Ubuntu较新版本:GRUB编辑界面操作一样,同样改linux行。个别版本需要把ro改成rw再附加init参数,逻辑一致。
CentOS 7/8(老机器常见):流程相同。若GRUB菜单不出现,在VNC里趁开机瞬间持续按Esc或上下方向键。
systemd机器的替代方案:部分发行版单用户bash改法失败,可改用 rw init=/bin/sh(作用相同),或把启动目标改为救援模式:在linux行尾加 systemd.unit=rescue.target,进去后同样passwd改密。
六、常见卡点
卡点1:GRUB菜单一闪而过根本来不及按。多试几次,重启瞬间就狂按方向键;仍不行的,进系统配置里把GRUB超时改大(前提是你还有别的途径进系统)。
卡点2:改完密码重启还是登不上。大概率是SSH服务配置只允许密钥。确认PasswordAuthentication是yes,重启sshd服务:systemctl restart sshd。
卡点3:VNC里键盘错乱。切英文输入法再操作;改密码时避免用特殊符号,纯字母数字先改进去,登进SSH后再改成强密码。
卡点4:商家根本没给VNC。换救援模式入口:很多商家提供Rescue救援系统,挂载你的磁盘后切换根环境进去改密码,思路一致(挂载根分区 → chroot → passwd)。两者都没有的,只能工单求助或最后走DD重装。
七、事后补课
密码救回来只是止血,防复发三件事:
1. 管理密码用密码管理器,别再靠记忆和聊天记录;
2. 配置SSH密钥登录并保底:密钥丢了密码还能进,两个通道留一个活口;
3. 把VNC入口位置、救援模式入口记进你的机器档案,下次应急不慌。
结语
root密码丢失是典型的低频高危事件:平时遇不到,遇到时如果只剩DD重装这一条路,代价是整站数据。VNC加GRUB单用户模式是成本最低的自救路径,十几分钟、零数据损失。
建议把这篇存进收藏夹——最好永远用不上,但真到那天,你会庆幸不用从备份里捞数据。




