【发布时间】:2022-11-02 00:32:36
【问题描述】:
我不小心删除了我的公钥和私钥,并且由于无法恢复密钥(并且在任何地方都没有备份)而不得不生成新的 SSH 密钥。如何更改我的 Oracle Cloud 实例的公共 SSH 密钥?
终止实例并重新制作它不是一种选择,我尝试在网上查找,但找不到太多。任何帮助,将不胜感激。
谢谢
【问题讨论】:
标签: oracle-cloud-infrastructure
我不小心删除了我的公钥和私钥,并且由于无法恢复密钥(并且在任何地方都没有备份)而不得不生成新的 SSH 密钥。如何更改我的 Oracle Cloud 实例的公共 SSH 密钥?
终止实例并重新制作它不是一种选择,我尝试在网上查找,但找不到太多。任何帮助,将不胜感激。
谢谢
【问题讨论】:
标签: oracle-cloud-infrastructure
找到了解决方案!就像人们知道的那样,网上有一些方法涉及通过 VNC 连接到机器,但对我个人而言,在错误的时间按下按钮时感觉非常试错,最终无法正常工作(VNC 没有'不为我显示恢复模式,选择它后只是一个空白屏幕)。
本指南包括:创建另一台机器(无论如何都包括在免费层中),从机器上分离启动卷驱动器并将其连接到刚刚创建的机器上,进行编辑以更改密钥,然后连接驱动器备份。
我在 Oracle 面板中删除了我的其他 VPS 之一(那是一台免费机器 - 因为我不需要它并且没有使用它)并重新创建它(我确保在继续之前删除旧的引导卷)。
(此解决方案假设您使用的是 Ubuntu 20.04,但这可能也适用于其他操作系统)
基本上从那里,
通过 SSH 登录到机器,并通过点击三个点(下图)运行连接命令并查看连接命令,以连接驱动器。
然后运行blkid(或sudo fdisk -l以获得更友好的视图)
您可以看到哪些驱动器可用于安装。因此,您只需创建一个文件夹并输入:
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]
从面板运行驱动器的断开连接命令。
然后,只需将驱动器从您的另一台机器上拆下,然后将其重新连接到原始机器上。等待它完全连接,然后再次启动机器。
【讨论】:
您可以创建一个控制台连接,连接到它,然后重新启动实例(通过 OCI 控制台),然后在控制台连接中访问 GRUB……再执行几个步骤,您就可以上传一个新的 ssh 密钥:https://docs.oracle.com/en-us/iaas/Content/Compute/References/serialconsole.htm
【讨论】: