Oracle Cloud甲骨文云服务器忘记SSH秘钥或未设置Public key的解决办法

甲骨文服务器最近的终身免费服务器着实火了一把,很多人创建实例对设置秘钥可能存在一些问题,导致后面服务器连接不上,下面是修改重置已创建服务器但是ssh登录不上的解决办法。

前期准备

1、秘钥对

这里以Xshell为例,菜单栏->工具->新建秘钥向导,下一步下一步生成公钥和私钥,可以将它们全部导出成文件。

《Oracle Cloud甲骨文云服务器忘记SSH秘钥或未设置Public key的解决办法》

2、创建一台新的实例,东京韩国现在应该没有资源了,可以创建一个收费的实例

《Oracle Cloud甲骨文云服务器忘记SSH秘钥或未设置Public key的解决办法》

如图示所示的实例配置就是收费,不带mirco后缀

3、Xshell使用上面的私钥opc用户登录已经创建的这台服务器,sudo -i可以切换root用户,供后面使用

重置登录不上服务器秘钥

1、停止之前登录不上的终免服务器,Tips:注意是停止服务器,不是终止!!!待会还需要启动

《Oracle Cloud甲骨文云服务器忘记SSH秘钥或未设置Public key的解决办法》

2、分离这台服务器的引导卷,停止服务器后,可以在下面分离引导卷,稍后会将这台服务器挂载到上面我们已经创建的收费服务器进行秘钥修改。

《Oracle Cloud甲骨文云服务器忘记SSH秘钥或未设置Public key的解决办法》

3、切换至收费服务器的细节页面,将已经分离的引导卷重新附加到收费服务器

《Oracle Cloud甲骨文云服务器忘记SSH秘钥或未设置Public key的解决办法》

4、点击附加后的选项查看iSCSI命令

《Oracle Cloud甲骨文云服务器忘记SSH秘钥或未设置Public key的解决办法》

5、切换到Xshell收费服务器控制台,依次执行上图中红框命令,执行:

fdisk -l /dev/sdb

如果查看到磁盘信息,应该就已经附加成功。

《Oracle Cloud甲骨文云服务器忘记SSH秘钥或未设置Public key的解决办法》

6、挂载、执行如下命令

sudo mount -o nouuid /dev/sdb3 /mnt

如果此步报错,执行:

sudo mount /dev/sdb3 /mnt

7、如果到了这一步,即将就ok了,修改公钥,继续执行

sudo vi /mnt/home/opc/.ssh/authorized_keys 

键盘按两次d可以删除已有秘钥,按i键进入编辑,将上面准备的公钥文件内容,记住是公钥,全部粘贴到里面,注意空格和换行,按ESC->按住shift+两次z键,保存退出

8、解除挂载,执行命令

sudo umount /mnt

9、执行下图红框中命令,分离引导卷

《Oracle Cloud甲骨文云服务器忘记SSH秘钥或未设置Public key的解决办法》

10、网页操作界面分离

《Oracle Cloud甲骨文云服务器忘记SSH秘钥或未设置Public key的解决办法》

11、重新将这个卷挂载到终免服务器上,然后启动服务器,这样就可以使用刚刚上面生成的私钥登录这台服务器了,至此ssh秘钥修改完毕

《Oracle Cloud甲骨文云服务器忘记SSH秘钥或未设置Public key的解决办法》

如果细节上有什么问题可以在下面留言。

参考oracle官方文档:https://blogs.oracle.com/cloud-infrastructure/recovering-opc-user-ssh-key-on-oracle-cloud-infrastructure

点赞
  1. latiao说道:

    卷的意思是不是等于我们物理机的硬盘?那个,如果要重装系统的话应该如何操作呢?

    1. Jason说道:

      重装系统智能删除实例重新创建,云服务器不能这么操作重装系统的,都是虚拟出来的机器

  2. 111说道:

    sudo vi /mnt/home/opc/.ssh/authorized_keys 编辑后没办法保存啊

    1. Jason说道:

      按住shift加冒号输入q回车就可以保存啦

  3. 求助大佬说道:

    求助大佬:我的免费系统是CentOS 6.10,用您的办法改秘钥,一直失败,折腾通宵了。。。求大佬出手指点一二。。。问题明细在这边:hostloc,帖子ID是587598(好像这里不能发链接)

    1. Jason说道:

      发你的qq或者微信到我邮箱shaowei_zhou@163.com,我帮你看一下

  4. KAMCHOLEE说道:

    sudo mount -o nouuid /dev/sdb3 /mnt

    mount: special device /dev/sdb3 does not exist

    挂载不上 UB 系统

  5. 嘘嘘说道:

    谢谢老板,成功了。我看了N多教程都不行。用你的这个教程稍微改正了一下!!!

    谢谢老板搞定了。不过有2个地方需要修改
    sudo mount -o nouuid /dev/sdb3 /mnt
    sudo mount /dev/sdb3 /mnt ubuntu 用这个命令 3 改为1 3 会错误
    sudo vi /mnt/home/opc/.ssh/authorized_keys opc改为ubuntu 因为我是ubuntu 16.04系统

发表评论

电子邮件地址不会被公开。 必填项已用*标注