通过用户数据(userdata)使用新的密钥对

  1. 访问EC2控制台的密钥对: https://console.amazonaws.cn/ec2#KeyPairs

  2. 点击右上角的创建密钥对, 起个名称, 密钥对类型使用RSA, 私钥文件格式使用.pem

  3. 创建后浏览器会自动下载名称相同的后缀为.pem的私钥文件, 千万保存好这个文件, 这个下载只有一次

  4. 右键点击开始按钮 > Windows PowerShell, 参考下面命令从私钥文件中检索公有密钥(-f参数后面请根据实际情况替换为pem文件的完整路径, 下面例子操作的是浏览器默认下载的文件夹):

    PS C:\Users\lpwm> ssh-keygen -y -f $env:userprofile\downloads\newkey.pem
    ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCleU4KMARvUYE8fSb7ZOJX/gSlVKS4n8v2fWvY5eozOWrn7wiejwvXcFtosR9I6fgLynoQTS8yHknmWOdbuWOhyy9j+PFhISUTtfumba+9e7jnljV7K5brReOA2NbdyiU2M5cE09CY7zHSl9iV1WzLbDjQs/bsI8bViirEEHDnlpyOKOOugYDFvdLVvsI9BWmQK7A/sj4Z+ZyxbUZtEcSOrWsPSv+3yY9XVB9KZe5vBRHwsbvkStrytVAXfUs78k5IlquUdqVq9AVR4EFW5EaIHHQd2u0VpnWdZcEbFa79N0nZWybIPw8YWT3gnjt3QL0/zaxvao661osCLSFHQis1
    

    记录上面命令输出的结果(从ssh-rsa开始一直到最后一个字符):

    ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCleU4KMARvUYE8fSb7ZOJX/gSlVKS4n8v2fWvY5eozOWrn7wiejwvXcFtosR9I6fgLynoQTS8yHknmWOdbuWOhyy9j+PFhISUTtfumba+9e7jnljV7K5brReOA2NbdyiU2M5cE09CY7zHSl9iV1WzLbDjQs/bsI8bViirEEHDnlpyOKOOugYDFvdLVvsI9BWmQK7A/sj4Z+ZyxbUZtEcSOrWsPSv+3yY9XVB9KZe5vBRHwsbvkStrytVAXfUs78k5IlquUdqVq9AVR4EFW5EaIHHQd2u0VpnWdZcEbFa79N0nZWybIPw8YWT3gnjt3QL0/zaxvao661osCLSFHQis1
    

    如果是在WSL或Linux/Mac中执行上面操作可能会遇到权限问题, chmod 400 newkey.pem改一下权限就好

  5. EC2控制台中关闭当前的实例, 然后依次选择: 操作 - 实例设置 - 编辑用户数据

  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: ubuntussh-authorized-keys: - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCPkVFzF/LDJsNq5JhbSR1T0PdQHlmdhii/4aTZ8QBBuPw2YgcXs+jpNcT9wnXkbwAYZw2lB67fHAW37OYoqFT7/0XiSQCTuZGG0eG8ILcxCVKmoVHkJ32rGQasaqFAb/Mg7CRH4HUTrOk7Ybsgl3IU9CnkkBn48G3kDUs+eq6WmwWZq24h3Z4QvCYfC8OtfocJRto95rIy7sX2INdQKwtGz+GYkuvPwQmnRDobTQAOIJKKWKoSk6wqN2dF0/QZ1Vr7tBJppw0ECOVUeWLIQNqjNIhBoN8dLeczZuhvJ1q4hE+tRc0Af69ohqQxJKJ27zZmdrRDQDudT42sgieUPRyH
    

    注意修改- name: 后面为实例中已有的用户名, 不同AMI对应的默认用户名不同, 可以参考:

    MI 默认SSH用户名
    Amazon Linux ec2-user
    Ubuntu ubuntu
    RHEL ec2-user
    其他 参考AMI说明

    修改ssh-authorized-keys:下面一行的内容为-+空格+上面第4步记录的公钥内容, 如图:

    点击保存按钮完成设置

  7. 启动实例并刷新观察控制台中实例状态变为正在运行, 从本地电脑使用新的密钥对pem文件再次连接实例

    ssh -i newkey.pem ubuntu@x.x.x.x
    
  8. 最后一步, 由于用户数据中包含密钥对的公钥信息, 连接成功后需要再将实例关闭, 重复第5步修改用户数据, 将之前输入的内容全部删除后保存, 再重新启动实例.

至此实例替换密钥对操作全部完毕.

参考文档:
https://aws.amazon.com/cn/premiumsupport/knowledge-center/user-data-replace-key-pair-ec2/

Linux实例丢失SSH密钥对的解决步骤相关推荐

  1. 阿里云服务配置SSH密钥对登陆

    文章目录 阿里云服务配置SSH密钥对登陆 前言 SSH密钥对概述 SSH密钥对介绍 功能优势 使用限制 1 登陆云服务控制台 2 创建密钥对下载私钥 3 绑定ECS实例 4 修改私钥文件属性 5 运行 ...

  2. 无法启动程序 计算机丢失QT,Win7系统打开程序提示计算机中丢失qt5core.dll如何解决...

    最近有win7旗舰版系统用户在打开某个程序的时候,突然弹出系统错误窗口,显示无法启动此程序,因为计算机中丢失qt5core.dll.尝试重新安装该程序以解决此问题,该怎么办呢,接下来随win7之家小编 ...

  3. SSH密钥对登录的原理和实践

    SSH密钥对登录的原理和实践 1.ssh密钥对登录的基本思路是:要登录谁,就把公钥放到谁身上,就可以授权登录谁. 2.本地登录设备称为ssh客户端,被登录的设备称为ssh服务器. 3.原理图描述如下: ...

  4. linux添加sshkey,使用SSH密钥对连接Linux实例

    本地为Linux或其它支持SSH命令的环境 本节介绍如何在Linux或其他支持SSH命令的环境(如Windows下的MobaXterm)下使用SSH密钥对登录Linux实例. 方式一 找到您所下载的. ...

  5. linux一次性密码确保ssh登录安全,使用 SSH 时确保 EC2 Linux 实例安全的最佳实践

    使用 SSH 安全访问 EC2 Linux 实例,同时避免未经授权的访问的最佳实践有哪些? 上次更新时间:2020 年 9 月 4 日 我想使用 SSH 访问 Amazon Elastic Compu ...

  6. linux ssh密钥对,Mac使用ssh密钥登录Linux

    ssh登录Linux通常有两种方法:用户名密码登录.用户名密钥登录:使用用户名密码登录每次都要输入密码,相当麻烦,而使用用户名密钥登录则可以避免这个问题. 创建密钥对文件 打开本地终端,执行 ssh- ...

  7. xshell使用SSH密钥登录Linux实例

    在本地Windows系统中打开xshell. 工具栏上打开 工具 > 新建用户密钥生成向导 在新建会话属性的 连接 配置中输入会话名称和您的云服务器IP地址 点击 连接 中的用户身份验证,方法选 ...

  8. Linux 服务器SSH密钥对登录设置

    SSH 简介 SSH 是 Secure Shell 的缩写,称为安全外壳协议 ,SSH 为建立在应用层和传输层基础之上的安全协议. SSH 相关知识 SSH 端口:22 Linux中的守护进程:ssh ...

  9. linux修改ssh登陆端口号,Linux 6 修改ssh默认远程端口号的操作步骤

    linux 默认的ssh远程端口是22,有时默认端口会遭到别有用心的人们扫描或攻击,为了时我们的系统更加安全那就需要修改远程端口号 操作步骤: 1.修改ssh_config配置文件 vim /etc/ ...

最新文章

  1. 花了一上午,终于完成了作业
  2. css 字体样式设置
  3. C#关机代码实例详解
  4. linux进程VSZ(虚拟内存)
  5. 第一个Android项目
  6. java都要caps标点_第 1 章 管理 Java CAPS 用户
  7. 编译mediastreamer2/ffmpeg/linphone(x86平台)
  8. c语言存储的逻辑顺序,栈是不是顺序储存的线性结构啊?
  9. 如何做相册_苹果手机相册不想让人看怎么办?看这里教你加密
  10. jQuery性能优化指南(2)
  11. C语言实例:三个数从小到大排序
  12. 苹果软件更新在哪里_手机资讯:iPhone 为什么比安卓手机好用iPhone 的独到之处在哪里...
  13. one algorithm a day keeps the doctor away -- BubbleSort
  14. 【聚类算法】用Sklearn封装的KMeans | DBSCAN算法详解 |【问题解决】AttributeError: ‘NoneType‘ object has no attribute split
  15. 利用TC进行流量控制
  16. 痞子衡嵌入式:IAR内部C-SPY调试组件配套宏文件(.mac)用法介绍
  17. 新浪微博图床架构解析
  18. 【SAP消息号AW003】
  19. 大型网站架构之架构演变
  20. JVM之类加载机制(基于《深入理解Java虚拟机》之第七章类加载机制)(上)

热门文章

  1. C++万年历课程设计
  2. 数据库三个级别封锁协议
  3. 使用萤石工作室采集视频流程以及萤石摄像头(C6、C8PF)、Sj6 Legend详解
  4. 独家 | 揭底!BiYong被爆严重用户隐私安全漏洞!
  5. 地铁车辆主传动系统实时仿真测试平台ETest研究
  6. 化工厂人员定位系统助力化工企业安全运行
  7. AR、MA、ARMA和ARIMA模型------时间序列预测
  8. win10强效杀毒去捆绑
  9. Spring框架两大核心特征的基本理解
  10. Java 在PDF中添加骑缝章