如果在首次启动后丢失了 SSH 密钥对,该如何连接到 Amazon EC2 实例?
我想连接到我的 Amazon Elastic Compute Cloud (Amazon EC2) 实例,但是丢失了 SSH 密钥对。如何连接到实例?
解决方法
重要提示:
方法 1、2 和 3 需要停止并启动实例。但应注意以下几点:
- 如果您的实例受实例存储支持或具有包含数据的实例存储卷,则在实例停止时数据将丢失。有关更多信息,请参阅确定实例的根设备类型。请务必备份您想保存在实例存储卷上的所有数据。
- 停止并重新启动实例会更改实例的公有 IP 地址。将外部流量路由到您的实例时,最佳做法是使用 Elastic IP 地址,而不是公有 IP 地址。
方法 1:输入用户数据
1. 创建新密钥对。
2. 如果您在 Amazon EC2 控制台中创建私钥,则在公钥中检索密钥对。
3. 打开 Amazon EC2 控制台。
4. 停止您的实例。
5. 依次选择 Actions(操作)、Instance settings(实例设置)、Edit user data(编辑用户数据)。
6. 将下列脚本复制到编辑用户数据对话框中:
Content-Type: multipart/mixed; boundary="//"
MIME-Version: 1.0
--//
Content-Type: text/cloud-config; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="cloud-config.txt"
#cloud-config
cloud_final_modules:
- [users-groups, once]
users:
- name: username
ssh-authorized-keys:
- PublicKeypair
将 username 替换为您的用户名,如 ec2-user。您可以输入默认用户名,或者如果先前已为该实例设置了自定义用户名,则输入此用户名。有关默认用户名的列表,请参阅连接到实例的一般先决条件。
将 PublicKeypair 替换为第 2 步中检索到的公钥。确保输入以 ssh-rsa 开头的完整公钥。
7. 选择 Save(保存)。
8. 启动您的实例。
9. cloud-init 阶段完成后,请验证公钥是否已被替换。
重要提示:由于脚本包含密钥对,请删除用户数据字段中的脚本。
10. 停止您的实例。
11. 依次选择 Actions(操作)、Instance Settings(实例设置)、Edit user data(编辑用户数据)。
12. 删除Edit user data(编辑用户数据)对话框中的所有文本,然后选择 Save(保存)。
13. 启动您的实例。
https://aws.amazon.com/cn/premiumsupport/knowledge-center/user-data-replace-key-pair-ec2/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
2020-12-06 【Ansible学习】- 常用文件操作模块之lineinfile模块
2018-12-06 用dockerfile构建基于centos系统的jar包的镜像
2017-12-06 CentOS 7 安装mysql