VPS忘记root密码怎么办
VPS用一段时间没登录,回头想连的时候发现root密码怎么试都不对,这种情况比想象中常见——密码管理器换了、笔记丢了、或者根本没记录过用的是随机密码。好在这不算严重问题,只要还有VPS控制面板的登录权限,基本都能找回来。
先看看面板有没有直接重置的按钮
不少服务商在管理面板里直接提供了重置root密码的功能,不用走复杂流程。比如搬瓦工的KiwiVM面板里,找到"Root password modification",点"Generate and set a new root password",等几秒就能拿到新密码;前提是VPS得处于开机状态,关机的话点了会提示失败。
Vultr、DigitalOcean这类主流服务商也大多有类似入口,具体位置每家面板叫法不一样,一般在VPS详情页找"重置密码""Reset Password"这类字样的按钮就是了。
这是最省事的方式,先确认自己用的服务商有没有这个功能,有的话不用往下看了。
面板没有重置功能,得走救援模式
如果服务商压根没提供密码重置入口,就得自己动手,通过VNC/KVM控制台进系统改。这一步的核心思路是:利用系统启动时的GRUB菜单,临时进入单用户模式(或者rescue模式),跳过密码验证直接拿到一个root shell,改完密码再正常启动。
大致步骤:在控制面板重启VPS的同时打开VNC/KVM控制台(不同服务商入口位置不同,一般叫Console、VNC、KVM这类名字),系统重启到GRUB引导菜单的瞬间按方向键阻止它自动继续,选中要启动的内核那一行按e进入编辑模式,找到以linux或linux16开头的那一行,行末加个空格再加single(有的系统版本是1),告诉内核以单用户模式启动,按Ctrl+X或F10保存并按这个临时配置启动。
系统会直接给一个root shell,不需要密码,执行:
1 | mount -o remount,rw / |
设置新密码,输入两次确认,改完正常重启:
1 | reboot |
不同发行版细节会有点出入(比如CentOS7有些版本得用rd.break参数走另一套流程),具体卡在哪一步可以照着报错信息搜对应系统版本的操作,思路都是共通的。
这个方法的前提是VPS本身还能用,只是登录密码不对。如果连VNC/KVM控制台都连不上,那基本走投无路了,只能考虑DD重装这条路——数据保不住,但至少能拿回一台能用的机器,具体命令可以看dd命令大集合。
密码改回来之后,顺手把SSH安全这块理一下,用Linux一键初始化SSH加固脚本里提到的密钥登录方式,能从根本上避免下次再忘密码。