如何更改 Oracle 云实例的 public 键?

How do you change the public key of a Oracle Cloud Instance?

我不小心删除了我的 public 和私钥,由于无法恢复密钥(并且没有任何备份),不得不生成新的 SSH 密钥。如何更改我的 Oracle 云实例的 public SSH 密钥?

终止实例并重新制作它不是一种选择,我尝试在线查找但找不到太多。任何帮助将不胜感激。

谢谢

您可以创建一个控制台连接,连接到它,然后重启实例(通过 OCI 控制台),并在控制台连接中进入 GRUB...再执行几个步骤,您就可以上传一个新的 ssh 密钥: https://docs.oracle.com/en-us/iaas/Content/Compute/References/serialconsole.htm

一些背景

找到解决办法了!顺便提一下,网上有VNC连接机器的方法,但我个人感觉很trial-an-error,按错了按钮,结果无法正常工作(VNC没有'为我显示恢复模式,选择后只是黑屏)。

总结

本指南涉及:创建另一台机器(无论如何都包含在免费套餐中),从机器上分离启动卷驱动器并将其附加到刚刚创建的机器上,进行编辑以更改密钥,然后附加驱动器备份。

创建另一个 VPS(Oracle 有它们,包括 > 免费层)

我在 Oracle 面板中删除了我的另一个 VPS'(那是一台免费机器 - 因为我不需要它也没有使用它)并重新创建它(我做了请确保在继续之前删除旧的引导卷)。

(此解决方案假设您使用 Ubuntu 20.04,但这可能也适用于其他 OS)

基本上从那里开始,

  1. 我关闭了我想更改我的 SSH 密钥的机器。
  2. 完全关闭电源后,只需将启动卷从 VPS 中分离出来,并将其作为块卷附加到刚创建的机器上。

通过 SSH 登录机器,然后 运行 通过点击三个点(下图)并查看连接命令来连接命令,以连接驱动器。

正在编辑驱动器上的文件和安装过程

然后 运行ning, blkid 您能够看到哪些驱动器可用于安装。那么你只需创建一个文件夹并简单地输入: sudo mount [drive path e.g. /dev/sdb] [folder path e.g. ./drive] 在 /home/ubuntu/.ssh/authorized_keys 处编辑文件,或者您的机器配置如何(默认情况下 Oracle 不允许 root,但如果您编辑了配置,则由您决定)。

然后,只需转到相关路径即可卸载驱动器,umount [folder path e.g. ./drive] 运行 从面板断开驱动器的命令。

然后,只需将驱动器从您的另一台机器上拆下来,然后重新装回原来的机器上即可。等到完全贴合后再开机。