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

时间:2016-03-18 13:36:42

标签: amazon-web-services ssh amazon-ec2

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

Amazon AWS EC2 Deleted Key Locked out of Root

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

2 个答案:

答案 0 :(得分:3)

没有解决方案不涉及使用与实例分离的EBS卷。

也许您可以启动此实例的副本,修复它,然后将弹性IP地址移动到固定实例,停机时间最短?

答案 1 :(得分:1)

这是一个古老的问题,但是如果有人在这里想知道这个问题,可以按照AWS Knowledge Base的步骤进行快速而相对轻松的修复。

基本细节如下:

  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
    

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

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

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