设想一种情况,您试图连接到Oracle Cloud VPS实例,但是要么忘记了使用哪个密钥,要么由于某种未知原因而导致opc用户SSH密钥被删除。乍一看可能令人恐惧,但是在Oracle Cloud VPS上恢复opc用户SSH密钥的过程比您想象的要容易。
因此,如果尝试通过SSH连接时收到“权限被拒绝(publickey,gssapi-keyex,gssapi-with-mic)”错误,请按照以下过程进行操作以恢复您的密钥。
您还可以使用Oracle Cloud VPS串行控制台维护模式引导选项作为恢复opc ssh密钥的替代方法。有关更多详细信息,请参见“从实例控制台连接实例对实例进行故障排除” 。
大致的步骤
1.停止无法登录的实例。
2.分离启动卷。
3.将启动卷附加到正在运行的Linux实例。
4.运行iSCSI命令以连接设备并使其对本地操作系统可见。
5.修复authorized_keys文件。
6.卸载设备并通过运行iSCSI命令分离它。
7.将启动卷附加到原始实例并启动它。
具体过程如下
停止无法连接的实例。在Oracle Cloud 控制台中,转到实例的详细信息页面,然后单击Stop。
分离启动卷。在“启动卷”部分中,单击“操作”图标,然后选择“分离”。
转到另一个VM的详细信息页面,将启动卷附加到另一个Linux实例,单击附加块卷,然后选择在上一步中刚刚分离的启动卷。确保选择“读/写访问”。
引导卷附件完成后(BV图标为绿色),请在运行的VM中通过SSH连接并运行iSCSI命令,以使该新磁盘可用并在OS中可见。
复制iscsi里面的挂载命令,一共三行
您的引导卷应显示为 /dev/sdb。
使 /dev/sdb3(这是您可以在其中恢复opc SSH密钥文件的根(/)分区)使用“ mount”命令可用于本地操作系统。确保使用-o nouuid选项。否则,您将看到“ mount:错误的fs类型,错误的选项,/ dev / sdb3上的错误超级块”错误消息。
$ sudo mount -o nouuid /dev/sdb3 /mnt
通过编辑/mnt/home/opc/.ssh/authorized_keys文件并添加SSH密钥公用文件来修复opc SSH密钥。
$ sudo vi /mnt/home/opc/.ssh/authorized_keys
添加或更改SSH公钥后,需要使用,保存并退出它。
运行umount / mnt。
$ sudo umount /mnt
通过运行detach iSCSI命令来分离iSCSI引导卷。
同样是复制下面2条命令行
确保 /dev/sdb 磁盘不再可用,通过SSH连接查看/dev 里面,然后分离它。
将启动卷重新连接到您要恢复SSH密钥的实例,等待它开始运行(绿色图标)并启动它。
就是这样。您已恢复opc用户SSH密钥,现在可以重新登录到实例。您也可以使用此过程对根(/)分区进行故障排除。