记一次Oracle Cloud计算实例ssh恢复过程

#ssh秘钥丢失# , #Oracle Cloud# 。

电脑上的ssh秘钥文件不知道什么时候丢失了,直到用的时候才发现没有了,这下可好,Oracle Cloud的计算实例连不上了,这个实例只能通过ssh连接上去:

以下是解决步骤:

1. 首先请先准备好新的ssh 秘钥文件,通过ssh-keygen -t rsa 生成,这一步就自己准备好就行。

如果是其他工具生成的秘钥,请注意格式问题,如果你不确定自己生成的有没有问题,那么在Oracle Cloud 的网页上,选择新建一个计算实例(这里并不是让你新增一个计算实例,只是用到了其中的生成ssh key的部分),在“添加ssh秘钥”的部分,把系统帮你生成的私钥和公钥都下载下来就行。

下载好了,就可以取消创建计算实例了。

2. 通过网页上的控制台连接到cloud shell:

在计算实例页面的左下方,点击“控制台连接”,然后点击“启动cloud shell连接”

启动好cloud shell后,shell里面会提示你login, 不要管这个,也不要输入什么。这时点击页面上部实例管理操作中的“重新引导” 按钮,稍等片刻,你就会看到cloud shell中有日志不停的刷了,不过,你最好全部看完我下面的步骤再点击“重新引导”,否则有些操作可能会来不及。

3.进入维护模式

这一步主要参考官方文档Troubleshooting Instances Using Instance Console Connections 中的 To boot into maintenance mode 启动进入维护模式 章节,这里我简要说一下

a). 重新引导后,不停的按esc键

b).在出现的菜单中,选择“Boot Manager”,然后按 Enter

c).在 Boot Manager 菜单中,选择 UEFI Oracle BlockVolume,然后按 Enter。立即按下 Esc 键并继续按下直至出现启动菜单。如果窗口中开始出现控制台消息,则表明访问启动菜单的机会已经过去,您需要再次启动重新启动过程。

d).在启动菜单中,突出显示菜单顶部的项目,然后按 e 编辑启动项

f).在你对应的部分(参考官方文档说明)添加 init=/bin/bash , 这里我添加的是: rw init=/bin/bash  ,因为按照官方文档的说法我始终没有成功,这里是另一个参考文章:
I get "Permission denied" when I ssh to my Oracle Cloud Infrastructure compute instance.

g). 然后按 ctrl+x 重新启动,启动完,就可以进入维护模式了。

4.重置ssh秘钥

这一步也是参考官方文档中的“To add or reset the SSH key for the opc user 为 opc 用户添加或重置 SSH 密钥” 章节,(还是第三步的那个文档地址)。

但是官网文档在这里说的不全,我有几个地方踩坑了,后面会单独标记出来,以下是重置ssh秘钥的完整步骤:

a).   在 Bash shell 中,运行以下命令来加载 SElinux 策略以保留您正在修改的文件的上下文

/usr/sbin/load_policy -i

b).执行以下命令,重新挂载根分区并赋予读写权限:

/bin/mount -o remount, rw /

c).更改到 opc 用户的 SSH 密钥目录: cd ~opc/.ssh

d).重命名现有的授权密钥文件:mv authorized_keys authorized_keys.old

e). 把自己新的公钥替换上去,也就是第一步中准备好的那个xxxxx.pub文件:

echo '<contents of public key file>' >> authorized_keys

到这里,千万别急,ssh要能连接,权限和owner一定要正确才行,因为我们刚才实际上是新增了一个authorized_keys文件,所以你看一下这个文件的权限实际上不是600,owner也是root(要是opc才行),所以还要执行:

chmod 600 authorized_keys
chown opc:opc authorized_keys

f).执行“ mount -o remount,ro /” 强制操作系统刷新文件系统缓存。它还保证当机器重新启动时文件系统被标记为“干净卸载”。

g).执行“/usr/sbin/reboot -f”以重新启动正在运行的实例

5.大功告成

现在你应该可以在你自己的电脑上,通过  ssh -i xxxxxxx_rsa opc@具体的ip地址 来连接你的计算实例了,-i xxxxx_rsa 就是用你第一步下载的那个私钥的意思。

可是在我这里,还不行,因为我不知道什么原因导致的秘钥丢失,同时把ssh的配置也重置了,我这里此时连接的时候,首先提示了一个rsa错误:

no matching host key type found. Their offer: ssh-rsa

在.ssh目录下的config文件中添加:

HostKeyAlgorithms +ssh-rsa
PubkeyAcceptedKeyTypes +ssh-rsa

如果还有其他的问题,自己搜一下,一般应该没什么问题了。

这里最难的,应该是第三步添加init=/bin/bash 那个地方,cloud shell中光标是根本看不见,我只能盲操作,我的办法是把最后两行全部复制下来,到sublime中手工编辑好,在cloud shell中我是把最后的部分全部删除掉,然后从sublime中粘贴过去的,在sublime中编辑的时候,一定注意要把最后的“\" 字符删掉,内容合成一行就行了,

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/314297.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【PTA-C语言】编程练习6 - 结构体与共用体 - 函数题

如果代码存在问题&#xff0c;麻烦大家指正 ~ ~有帮助麻烦点个赞 ~ ~ 编程练习6 - 结构体与共用体 - 编程题 7-1 查找书籍&#xff08;分数 20&#xff09;7-2 一帮一&#xff08;分数 15&#xff09;7-3 计算职工工资&#xff08;分数 15&#xff09; 7-1 查找书籍&#xff08…

72内网安全-域横向CSMSF联动及应急响应知识

拿到才行&#xff0c;拿不到就是多余的 案例一MSF&CobaltStrike 联动 Shell 有一些功能可能cs或者msf强大一些&#xff0c;他们两个可以相互调用&#xff0c;在真实情况下也是可以cs和msf同时启动的&#xff0c; cs移交给msf .创建Foreign监听器 “Listeners”“Add”…

Portraiture4.1汉化版PS磨皮插件(支持原生m1芯片m2)

Portraiture汉化版PS磨皮插件。本期推荐一款全新ai算法ps2024中文汉化版ps磨皮插件Portraiture 4.1.2美颜滤镜安装包最新版ps调整肤色插件! 全新Portraiture 4.1.2版本PS人像修图美颜磨皮插件&#xff0c;升级AI算法&#xff0c;并支持多人及全身磨皮美化模式&#xff0c;推荐…

Python爬虫---selenium基本使用

为什么使用selenium&#xff1f; 使用urllib.request.urlopen()模拟浏览器有时候获取不到数据,所以使用selenium (1) selenium是一个用于web应用程序测试的工具 (2) selenium 测试直接运行在浏览器中&#xff0c;就像真正的用户在操作一样 (3) 支持通过各种driver (FirfoxDri…

appium入门基础

介绍 appium支持在不同平台的UI自动化&#xff0c;如web,移动端,桌面端等。还支持使用java&#xff0c;python&#xff0c;js等语言编写自动化代码。主要用于自动化测试脚本&#xff0c;省去重复的手动操作。 Appium官网 安装 首先必须环境有Node.js用于安装Appium。 总体来…

c盘扩容时,d盘无法删除卷问题

C盘扩容时&#xff0c;磁盘管理中D盘右键无法删除卷的原因 首先&#xff0c;D盘下文件夹为空&#xff0c;但是显示可用空间不是100%&#xff0c;经过排查&#xff0c;发现是虚拟内存设置在了D盘导致无法删除卷&#xff0c;这里只需要将虚拟内存放到其他盘&#xff0c;如E盘即可…

骑砍战团MOD开发(29)-module_scenes.py游戏场景

骑砍1战团mod开发-场景制作方法_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1Cw411N7G4/ 一.骑砍游戏场景 骑砍战团中进入城堡,乡村,战斗地图都被定义为场景,由module_scenes.py进行管理。 scene(游戏场景) 天空盒(Skyboxes.py) 地形(terrain code) 场景物(scene_…

Halcon闭运算closing

Halcon闭运算 文章目录 Halcon闭运算 闭运算的计算步骤&#xff0c;为先膨胀&#xff0c;后腐蚀。这两步操作能将看起来很接近的元素&#xff0c;如区域内部的空洞或外部孤立的点连接成一体&#xff0c;区域的外观和面积也不会有明显的改变。通俗地说&#xff0c;就是类似于“填…

Linux:/proc/sys/vm/目录各文件详解

目录 前言一、/proc/sys/vm/目录各文件二、相关功能的API函数 前言 /proc/sys/vm/ 目录是 Linux 系统中的一个特殊目录&#xff0c;它包含了与虚拟内存子系统相关的系统内核参数。这些参数可以用来配置系统的虚拟内存管理策略&#xff0c;包括内存分配、页面置换、内存压缩、NU…

Vue中使用JavaScript中的requestAnimationFrame动画循环实现循环滚动效果-demo

效果 requestAnimationFrame是一个由浏览器提供的 JavaScript 方法&#xff0c;用于在下一次浏览器重绘之前执行指定的回调函数。它接受一个回调函数作为参数&#xff0c;并返回一个整数值&#xff0c;可以用于取消动画循环。 使用 requestAnimationFrame 可以创建平滑的动画效…

【UnityShader入门精要学习笔记】(1)了解渲染流水线

本系列为作者学习UnityShader入门精要而作的笔记&#xff0c;内容将包括&#xff1a; 书本中句子照抄 个人批注项目源码一堆新手会犯的错误潜在的太监断更&#xff0c;有始无终 总之适用于同样开始学习Shader的同学们进行有取舍的参考。 文章目录 渲染流水线什么是流水线什么…

不吹不黑,辩证看待开发者是否需要入坑鸿蒙

前言 自打华为2019年发布鸿蒙操作系统以来&#xff0c;网上各种声音百家争鸣。尤其是2023年发布会公布的鸿蒙4.0宣称不再支持Android&#xff0c;更激烈的讨论随之而来。 本文没有宏大的叙事&#xff0c;只有基于现实的考量。 通过本文&#xff0c;你将了解到&#xff1a; Har…