Linux实例丢失SSH密钥对的解决步骤

通过用户数据(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: ubuntu
        ssh-authorized-keys: 
        - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCPkVFzF/LDJsNq5JhbSR1T0PdQHlmdhii/4aTZ8QBBuPw2YgcXs+jpNcT9wnXkbwAYZw2lB67fHAW37OYoqFT7/0XiSQCTuZGG0eG8ILcxCVKmoVHkJ32rGQasaqFAb/Mg7CRH4HUTrOk7Ybsgl3IU9CnkkBn48G3kDUs+eq6WmwWZq24h3Z4QvCYfC8OtfocJRto95rIy7sX2INdQKwtGz+GYkuvPwQmnRDobTQAOIJKKWKoSk6wqN2dF0/QZ1Vr7tBJppw0ECOVUeWLIQNqjNIhBoN8dLeczZuhvJ1q4hE+tRc0Af69ohqQxJKJ27zZmdrRDQDudT42sgieUPRyH
    

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

    MI默认SSH用户名
    Amazon Linuxec2-user
    Ubuntuubuntu
    RHELec2-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/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DexterLien

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值