指南 oracle(甲骨文云)免费服务器折腾笔记:丢失密钥解决办法

分类:指南
简介:oracle创建服务器的时候,默认使用密钥登录,如果丢失私钥,就没有办法再连接上去修改服务器。本文解决方法适合arm/x86。
如果是普通版你可以删除重建,当然资料也没了,如果是极为稀有的arm 24g内存版,你删除了就没资源了。
这时候就必须使用偏门的办法。此方法也是来自网络,我只是觉得别人抄来抄去,已经丢失细节了。原版教程也提供给大家,英文不好的配合谷歌翻译。(链接中的空格请删除再访问)
https:      //blogs.oracle.com/cloud-infrastructure/post/recovering-opc-user-ssh-key-on-oracle-cloud-infrastructure


      以我的arm服务器为例(系统是Oracle-Linux),方法是把这台丢失了私钥的arm服务器(简称A)的启动盘挂载到另外一台oracle服务器(简称B)上,连上这台B服务器,修改A的启动盘里的公钥(public key),以达到使用新密钥的结果。

具体操作步骤如下:
【以下A指代丢失私钥的服务器,B指代备用服务器,注意B服务器最好能够选择跟A服务器一样的系统(不论arm/x86),不然文件系统不一致可能最终卡在挂载上。甲骨文云可以免费一台ARM+两台AMD服务器,所以,新建一台服务器B吧。】




1、停止服务器A


▼注意是停止,不是终止。
chrome_NTPGjEzUhp.jpg






2、解挂磁盘


▼在第一步打开的服务器面板页面往下拉,左侧看到启动盘选项,进入。
chrome_FP1bwdBywp.jpg

▼打开的boot volume选项,可以看到磁盘,点击磁盘列表右侧的三个点,再选择Detach boot volume
explorer_wzrGo6judW.jpg




3、绑定服务器A的启动盘到B服务器


▼进入B服务器的面板,拉到下面,Attached block volumes 》》》 Attach block volume
chrome_pp8BJQQtWx.jpg

▼然后你就能在这里找到刚刚解绑的启动盘。选择它。
chrome_XctPyTnNP6.jpg

▼后面两根选项保持这样
chrome_Cw8zEDP2le.jpg

▼最后点击Attach就行了。
chrome_s0Qf1yepYO.jpg

▼绑定成功会显示Attached
chrome_0qMkQP9P7B.jpg






4、使用ssh连接到B服务器,挂载A服务器的启动盘。


(光绑定是无法使用的,还需要挂载。)


▼在第3步绑定成功后,点击此磁盘列表右边的三个点,选择iSCSI commands & information


chrome_717mg9olo5.jpg

而后会弹出连接命令。
▼总共有用于连接的三行命令以及用于断开的两行命令。保持这个页面打开,然后打开ssh连接到b服务器。
dllhost_umP6B0YSXx.jpg


用ssh软件连接到B服务器后,依次执行上面的三行连接命令,就完成了分配。建议切换到root帐号执行,避免权限问题,下面默认使用sudo,避免有人忘记。
执行完上面三个连接命令之后,使用
  1. sudo fdisk -l /dev/sdb
复制代码
▼可以看到A启动盘的磁盘信息。
putty_WHiB4q0MQo.jpg


▼再使用下面命令挂载A启动盘到mnt目录。
  1. sudo mount -o nouuid /dev/sdb3 /mnt
复制代码





5、修改公钥


首先使用puttygen或者其他ssh客户端生成一对新的密钥对,用写字板或者其他文本编辑器打开公钥(public key)

使用ssh客户端打开公钥文件(我的系统是Oracle-Linux,如果你是其他系统,目录不一样,具体看下面)
  1. sudo vi /mnt/home/opc/.ssh/authorized_keys
复制代码

CentOS▼
  1. sudo vi /mnt/home/opc/.ssh/authorized_keys
复制代码


ubuntu▼
  1. sudo vi /mnt/home/ubuntu/.ssh/authorized_keys
复制代码



编辑界面显示的就是它的公钥,拥有公钥没法转私钥,所以我们只能把这里的公钥修改为我们刚刚生成的。

o 进入编辑,删除里面的全部内容,然后复制前面生产的公钥内容(全部),右键就粘贴进去了。
esc 再输入:wq 这三个字符,回车,就修改保存完了。
putty_1f8UU6t8GZ.jpg





6、恢复A启动盘的挂载



▼先卸载。
  1. sudo umount /mnt
复制代码
断开与B服务器的连接
▼使用之前获得的iSCSI命令中的后面两个断开这个A磁盘。依然是在B服务器ssh中依次输入。
dllhost_ZhnO5D00on.jpg

回到oracle的服务器控制面板,进入B服务器,像第2步一样,解绑A磁盘和B服务器的绑定。这一步不用重复了。
(因为A磁盘不是B服务器的启动盘,这一步不需要关闭B服务器)

▼将A磁盘绑回A服务器。进入A服务器的控制面板,滑到下面,在Boot volume列表中能看到解绑的A磁盘,点三点,再次绑定就行了。


chrome_uCmFhcQr2q.jpg


绑定成功了启动A服务器。


然后就可以使用新生成的密钥队里的私钥,登录这台服务器了。







相关文章

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

评论