从 aws 实例中删除了 .ssh 文件夹

Y0g*_*pta 1 ssh amazon-ec2 amazon-web-services

我错误地从我的 aws 实例中删除了 .ssh 文件夹,现在我无法通过 ssh 访问它。问题是节点位于我的产品环境中,我不想重新启动它。我找到了以下解决方案 -

亚马逊 AWS EC2 删除的密钥被锁定在根之外

但它表明我需要将磁盘连接到另一个实例,这将导致节点关闭,但仍然无法保证解决方案。aws 控制台是否提供了我可以使用的解决方案。任何帮助将不胜感激。

Vla*_*lad 9

这是一个老问题,但如果有人想知道这个问题,今天可以按照AWS 知识库中的此过程完成快速且相对轻松的修复。

基本详情如下:

  1. 生成私钥(我使用的是 Mac bash shell,因此将使用 .pem 格式)
  2. 运行ssh-keygen -yf <KEY-FILE>.pem获取公钥
  3. 停止实例。
  4. 操作 -> 实例设置 -> 查看/更改用户数据
    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-REPLACE
        ssh-authorized-keys: 
        - PUBLIC-KEY-PAIR-REPLACE
    
    Run Code Online (Sandbox Code Playgroud)

    将USERNAME-REPLACE替换为实例用户名(例如:ubuntu、ec2-user 等)

    将PUBLIC-KEY-PAIR-REPLACE替换为您在步骤 2 中打印的内容(包括ssh-rsa部分)。

  5. 节省
  6. 启动实例
  7. 验证 SSH 是否有效
  8. 停止实例
  9. 删除您输入的用户数据
  10. 启动实例