oracle(甲骨文云)丢失密钥解决办法

oracle创建服务器的时候,默认使用密钥登录,如果丢失私钥,就没有办法再连接上去修改服务器。本文解决方法适合arm/x86。

如果是普通版你可以删除重建,当然资料也没了,如果是极为稀有的arm 24g内存版,你删除了就没资源了。  以我的arm服务器为例(系统是Oracle-Linux),方法是把这台丢失了私钥的arm服务器(简称A)的启动盘挂载到另外一台oracle服务器(简称B)上,连上这台B服务器,修改A的启动盘里的公钥(public key),以达到使用新密钥的结果。
具体操作步骤如下:
【以下A指代丢失私钥的服务器,B指代备用服务器,注意B服务器最好能够选择跟A服务器一样的系统(不论arm/x86),不然文件系统不一致可能最终卡在挂载上。甲骨文云可以免费一台ARM 两台AMD服务器,所以,新建一台服务器B吧。】

1、停止服务器A

▼注意是停止,不是终止。
oracle(甲骨文云)丢失密钥解决办法

2、解挂磁盘

▼在第一步打开的服务器面板页面往下拉,左侧看到启动盘选项,进入。
oracle(甲骨文云)丢失密钥解决办法
▼打开的boot volume选项,可以看到磁盘,点击磁盘列表右侧的三个点,再选择Detach boot volume
oracle(甲骨文云)丢失密钥解决办法

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

▼进入B服务器的面板,拉到下面,Attached block volumes 》》》 Attach block volume
oracle(甲骨文云)丢失密钥解决办法
▼然后你就能在这里找到刚刚解绑的启动盘。选择它。
oracle(甲骨文云)丢失密钥解决办法
▼后面两根选项保持这样
oracle(甲骨文云)丢失密钥解决办法
▼最后点击Attach就行了。
oracle(甲骨文云)丢失密钥解决办法
▼绑定成功会显示Attached
oracle(甲骨文云)丢失密钥解决办法4、使用ssh连接到B服务器,挂载A服务器的启动盘。

(光绑定是无法使用的,还需要挂载。)
▼在第3步绑定成功后,点击此磁盘列表右边的三个点,选择iSCSI commands & information
oracle(甲骨文云)丢失密钥解决办法
而后会弹出连接命令。
▼总共有用于连接的三行命令以及用于断开的两行命令。保持这个页面打开,然后打开ssh连接到b服务器。
oracle(甲骨文云)丢失密钥解决办法
用ssh软件连接到B服务器后,依次执行上面的三行连接命令,就完成了分配。建议切换到root帐号执行,避免权限问题,下面默认使用sudo,避免有人忘记。
执行完上面三个连接命令之后,使用

sudo fdisk -l /dev/sdb

▼可以看到A启动盘的磁盘信息。
oracle(甲骨文云)丢失密钥解决办法
▼再使用下面命令挂载A启动盘到mnt目录。

  1. sudo mount -o nouuid /dev/sdb3 /mnt

5、修改公钥

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

 

使用ssh客户端打开公钥文件(我的系统是Oracle-Linux,如果你是其他系统,目录不一样,具体看下面)

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

CentOS▼

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

ubuntu▼

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

编辑界面显示的就是它的公钥,拥有公钥没法转私钥,所以我们只能把这里的公钥修改为我们刚刚生成的。
按 o 进入编辑,删除里面的全部内容,然后复制前面生产的公钥内容(全部),右键就粘贴进去了。
按 esc 再输入:wq 这三个字符,回车,就修改保存完了。
oracle(甲骨文云)丢失密钥解决办法

6、恢复A启动盘的挂载

▼先卸载。

  1. sudo umount /mnt

断开与B服务器的连接
▼使用之前获得的iSCSI命令中的后面两个断开这个A磁盘。依然是在B服务器ssh中依次输入。
oracle(甲骨文云)丢失密钥解决办法
回到oracle的服务器控制面板,进入B服务器,像第2步一样,解绑A磁盘和B服务器的绑定。这一步不用重复了。
(因为A磁盘不是B服务器的启动盘,这一步不需要关闭B服务器)
▼将A磁盘绑回A服务器。进入A服务器的控制面板,滑到下面,在Boot volume列表中能看到解绑的A磁盘,点三点,再次绑定就行了。
oracle(甲骨文云)丢失密钥解决办法
绑定成功了启动A服务器。
然后就可以使用新生成的密钥队里的私钥,登录这台服务器了。

阅读剩余
THE END