甲骨文云SSH密钥丢失急救指南:教你3种方法找回控制权
甲骨文云SSH密钥丢失急救指南:教你3种方法找回控制权
玩甲骨文云(Oracle Cloud)的“免刀”VPS,最怕什么?除了账号被风控,大概就是把SSH密钥给弄丢了。
咱们平时为了安全,大都把密码认证关了,只用密钥登录。结果电脑重装系统、误删文件或者换了设备,突然发现手里没私钥了,那感觉简直比丢了钱包还尴尬。看着那台跑得好好的机器连不上,是不是想直接删了重开?
千万别急着删! 里面说不定还有你辛辛苦苦配置的服务或者重要的数据。这篇文章就教你几招,如何在保留数据的前提下,把这台机器的控制权拿回来。
方法一:控制台官方重置(最推荐,但有限制)
其实甲骨文官方早就考虑到这层设计了,虽然有点隐蔽,但确实提供了直接在控制台操作的功能。
操作步骤:
在实例详情页找到控制台连接选项
- 登录甲骨文云控制台,找到那个“失联”的计算实例。
- 点击实例详情下方的“控制台连接”。
- 你会看到两个选项:“创建本地连接”和“使用串行控制台连接”。我们选择后者。
- 这会打开一个基于浏览器的Web终端。如果默认用户无法登录,可能需要重启实例并在启动菜单通过GRUB修改启动参数进入单用户模式(这点稍难,新手慎试,其实主要是为了拿到root权限)。
- 关键一步: 一旦你进入了系统(哪怕是单用户模式),你可以手动修改
~/.ssh/authorized_keys文件。 - 把你现在电脑上的新生成的公钥内容粘贴进去,保存退出。
- 重启实例,用新私钥连接,成功复活。
注意:这种方法依赖于能否通过串行控制台获取足够的权限。如果系统引导出问题,或者密码复杂到你想不起来(即使单用户模式也可能需要密码),那就要看下面的硬核方法了。
方法二:VNC手动挂载修复(技术流首选)
如果控制台玩不转,那就得用点运维基本功了。我们可以利用VNC(图形化控制台)来进入系统界面,或者即便没图形界面,也能看到启动过程,进而进行救援。
核心思路: 启动一个临时的救援操作系统,把原系统硬盘挂载上去,然后修改SSH配置。
操作思路:
- 在甲骨文控制台停止实例。
- 修改实例的启动配置。甲骨文比较特殊,我们需要创建一个新的启动卷,或者是在VNC里通过修改GRUB启动引导参数来进入一个临时的Shell环境。
- 连接VNC控制台(Console Connection)。
- 在VNC界面里,如果你能进入系统,直接改
/etc/ssh/sshd_config开放密码登录,或者改authorized_keys。 - 如果进不去系统,通常的做法是挂载一个ISO镜像(ISO救援模式),但这在甲骨文云里并非直接支持所有操作系统。
对于甲骨文云来说,更通用的硬核方案其实是利用“启动卷”的快照和克隆功能。 我们把这个步骤简化为终极解决方案。
方法三:启动卷克隆救援法(数据无损,稳妥)
将克隆的引导卷作为数据盘挂载到临时实例
这是最稳妥、最不会出错的方法,哪怕你对Linux命令一知半解也能操作。原理很简单:把原本的硬盘克隆一份,挂到一台你能控制的机器上,把文件改好,再挂回去。
详细操作流程:
- 备份: 在控制台找到该实例的“引导卷”,点击创建快照。这是以防万一,千万别跳过。
- 克隆: 基于这个引导卷(或者刚做的快照),创建一个新的引导卷。
- 搭梯子: 新开一台临时的ARM或者AMD机器(最好是同一个子网里的,哪怕开个按小时付费的最小机型也花不了几个钱)。
- 挂载: 把刚才克隆出来的那个新引导卷,作为数据盘挂载到这台临时机器上。
- 修改: SSH登录到这台临时机器。
- 使用
lsblk查看磁盘名称,比如/dev/sdb。 - 挂载分区:
mount /dev/sdb1 /mnt(注意:有些机器可能有多个分区,比如boot分区在sdb1,root在sdb2,需要根据实际情况挂载,通常挂载根分区即可)。 - 进入目录:
cd /mnt/home/你的用户名/.ssh/(如果是Ubuntu可能是/mnt/ubuntu/.ssh等)。 - 编辑
authorized_keys文件:vi authorized_keys,把你电脑上新的公钥粘贴进去,保存。 - 进阶技巧:如果连root密码也想改,可以 chroot 进去:
chroot /mnt,然后执行passwd root修改密码,顺便修改/etc/ssh/sshd_config允许Root登录。
- 使用
- 还原: 卸载磁盘,把克隆卷挂载回原来的实例(或者直接修改原实例的启动源指向这个克隆卷,测试无误后再切换回去)。
- 清理: 删除临时机器和中间克隆卷(省钱要紧)。
写在最后
遇到SSH密钥丢失,最核心的原则就是不要轻易销毁实例。甲骨文云的特色在于“引导卷”和“计算实例”是分离的,这给了我们极大的操作空间。
对于新手,最推荐的其实是方法三,虽然听起来步骤多,但其实就是几个“点击-挂载-复制-粘贴”的操作,完全不用背命令,而且数据安全性最高。至于方法一,适合平时系统维护做得好,记得root密码或者能轻松进入单用户模式的高手。
下次再换电脑,记得把私钥导出备份到云盘或者几个U盘里,这才是长久之计啊!

评论已关闭