有同学在申请Oracle VPS时粗心地没有上传公钥,导致Oracle VPS开出来后无法连接和使用。解决的基本思路是:将有问题的VPS的硬盘卸载挂载到另一台正常运行的VPS上,然后修改硬盘中的公钥文件,再挂回到原来的VPS上。
先停止你想要上传和修改公钥的VPS主机,然后点击页面左下角的“引导卷”。
点击“引导卷”,选择“分离”。
现在再新建一个VPS主机,这个VPS主机要保持与需要修改公钥的VPS主机同一个区域。
点击这个新建的已经激活运行的VPS主机,查看“附加的块存储卷”,点击添加。
把刚才你分离出来的引导卷,作为块存储卷绑定到新的VPS上。(点击放大)
绑定成功后,点击该存储卷,选择“iSCSI命令和信息”。
这时你会看到“附加命令”,将他们复制一条一条地执行。
命令在哪里执行?使用S-S-H登录你这个新的已经激活运行的VPS上,将上面的命令一条一条执行。
wzfou.com执行命令如下:
root@wzfou-acitve0920:~# sudo -i
root@wzfou-acitve0920:~# sudo iscsiadm -m node -o new -T iqn.2015-02.oracle.boot:uefi -p 169.254.2.2:3260
New iSCSI node [tcp:[hw=,ip=,net_if=,iscsi_if=default] 169.254.2.2,3260,-1 iqn.2015-02.oracle.boot:uefi] added
root@wzfou-acitve0920:~# sudo iscsiadm -m node -o update -T iqn.2015-02.oracle.boot:uefi -n node.startup -v automatic
root@wzfou-acitve0920:~# sudo iscsiadm -m node -T iqn.2015-02.oracle.boot:uefi -p 169.254.2.2:3260 -l
Logging in to [iface: default, target: iqn.2015-02.oracle.boot:uefi, portal: 169.254.2.2,3260] (multiple)
Login to [iface: default, target: iqn.2015-02.oracle.boot:uefi, portal: 169.254.2.2,3260] successful.
使用fdisk -l
命令可以看到新增加的硬盘为:Disk /dev/sdb
,如下代码:
root@wzfou-acitve0920:~# fdisk -l
Disk /dev/loop0: 88.7 MiB, 92983296 bytes, 181608 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/loop1: 14.1 MiB, 14811136 bytes, 28928 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/sda: 46.6 GiB, 50010783744 bytes, 97677312 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 1048576 bytes
Disklabel type: gpt
Disk identifier: 9487A09C-B811-4688-9C29-C787DDA4B075
Device Start End Sectors Size Type
/dev/sda1 227328 97677278 97449951 46.5G Linux filesystem
/dev/sda14 2048 10239 8192 4M BIOS boot
/dev/sda15 10240 227327 217088 106M EFI System
Partition table entries are not in disk order.
Disk /dev/sdb: 46.6 GiB, 50010783744 bytes, 97677312 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 1048576 bytes
Disklabel type: gpt
Disk identifier: 117F31A3-C168-4DEE-ADC5-86217961B36F
Device Start End Sectors Size Type
/dev/sdb1 2048 1050623 1048576 512M EFI System
/dev/sdb2 1050624 17827839 16777216 8G Linux swap
/dev/sdb3 17827840 97675263 79847424 38.1G Microsoft basic data
接下来我们需要将新硬盘下的/dev/sdb3
(该分区下包含了Oracle VPS的authorized_keys
) 挂载在/mnt
下,编辑authorized_keys
,将你的公钥复制粘贴到authorized_keys
里。公钥生成方法参考:Oracle Cloud VPS密钥设置。命令如下:
#将新硬盘下的/dev/sdb3(该分区下包含了Oracle VPS的authorized_keys) 挂载在/mnt下
sudo mount -o nouuid /dev/sdb3 /mnt
#编辑authorized_keys,如果是CentOS,路径如下:
sudo vi /mnt/home/opc/.ssh/authorized_keys
#如果是ubuntu,则路径如下:
sudo vi /mnt/home/ubuntu/.ssh/authorized_keys
保存好了公钥。
然后执行命令解除挂载:sudo umount /mnt
,现在回到存储卷,选择“iSCSI命令和信息”。现在是复制“分离命令”了。
到你的S-S-H那里执行分离命令,如下:
root@wzfou-acitve0920:~# sudo umount /mnt
root@wzfou-acitve0920:~# sudo iscsiadm -m node -T iqn.2015-02.oracle.boot:uefi -p 169.254.2.2:3260 -u
Logging out of session [sid: 1, target: iqn.2015-02.oracle.boot:uefi, portal: 169.254.2.2,3260]
Logout of [sid: 1, target: iqn.2015-02.oracle.boot:uefi, portal: 169.254.2.2,3260] successful.
root@wzfou-acitve0920:~# sudo iscsiadm -m node -o delete -T iqn.2015-02.oracle.boot:uefi -p 169.254.2.2:3260
现在,你可以将绑定好的硬盘又从新激活的VPS主机分离出来了。