gpt4 book ai didi

amazon-web-services - 将 key 对添加到现有 EC2 实例

转载 作者:行者123 更新时间:2023-12-03 04:08:01 25 4
gpt4 key购买 nike

我得到了 AWS 对一个帐户的控制台访问权限,该帐户运行着 2 个我无法关闭的实例(在生产中)。但是,我想获得对这些实例的 SSH 访问权限,是否可以创建一个新的 key 对并将其应用于实例,以便我可以通过 SSH 进入?获取现有 pem 用于创建实例的 key 对的文件目前不是一个选项。
如果这是不可能的,我是否可以通过其他方式进入实例?

最佳答案

您不能将 key 对应用于正在运行的实例。您只能使用新 key 对来启动新实例。

对于恢复,如果它是 EBS 启动 AMI,您可以停止它,制作卷的快照。基于它创建一个新卷。并且能够使用它来启动旧实例、创建新镜像或恢复数据。

尽管临时存储中的数据将丢失。

由于这个问题和答案很受欢迎,我想捕获 Rodney 在他的评论中发布的链接中的信息。

信用转至 Eric Hammondthis information .

修复 EC2 实例根 EBS 卷上的文件

您可以检查和编辑 EC2 实例上根 EBS 卷上的文件,即使您处于您认为的灾难性情况,例如:

  • 您丢失了 ssh key 或忘记了密码
  • 您在编辑/etc/sudoers 文件时犯了一个错误,无法再
    使用 sudo 获得 root 访问权限以修复它
  • 您的长时间运行的实例由于某种原因挂起,不能
    已联系,但无法正常启动
  • 您需要从实例中恢复文件但无法访问它

  • 在办公 table 前的物理计算机上,您可以简单地使用 CD 或 U 盘启动系统,安装硬盘驱动器,检查并修复文件,然后重新启动计算机以恢复业务。

    但是,当您处于这些情况之一时,远程 EC2 实例似乎遥不可及且无法访问。幸运的是,AWS 为我们提供了能够恢复这样的系统的能力和灵活性,前提是我们运行的是 EBS 引导实例而不是实例存储。

    EC2 上的方法有点类似于物理解决方案,但我们要将有故障的“硬盘驱动器”(根 EBS 卷)移动并挂载到不同的实例,修复它,然后将其移回。

    在某些情况下,启动一个新的 EC2 实例并丢弃坏的实例可能更容易,但如果您真的想修复文件,以下方法对许多人都有效:

    设置

    标识包含损坏的根 EBS 卷的原始实例 (A) 和卷以及您要查看和编辑的文件。
    instance_a=i-XXXXXXXX

    volume=$(ec2-describe-instances $instance_a |
    egrep '^BLOCKDEVICE./dev/sda1' | cut -f3)

    确定您将用于修复原始 EBS 卷上的文件的第二个 EC2 实例 (B)。此实例必须在与实例 A 相同的可用区中运行,以便它可以将 EBS 卷附加到它。如果您还没有正在运行的实例,请启动一个临时实例。
    instance_b=i-YYYYYYYY

    停止损坏的实例 A(等待它完全停止),将根 EBS 卷与实例分离(等待它分离),然后将该卷附加到未使用设备上的实例 B。
    ec2-stop-instances $instance_a
    ec2-detach-volume $volume
    ec2-attach-volume --instance $instance_b --device /dev/sdj $volume

    ssh 到实例 B 并挂载该卷,以便您可以访问其文件系统。
    ssh ...instance b...

    sudo mkdir -p 000 /vol-a
    sudo mount /dev/sdj /vol-a

    修复它

    此时,您可以在实例 B 的/vol-a 下查看和编辑来自实例 A 的整个根文件系统。例如,您可能想要:
  • 将正确的 ssh key 放入/vol-a/home/ubuntu/.ssh/authorized_keys
  • 编辑和修复/vol-a/etc/sudoers
  • 在/vol-a/var/log/syslog
  • 中查找错误消息
  • 从/vol-a/... 复制重要文件

  • 注意:两个实例上的 uid 可能不相同,因此在创建、编辑或复制属于非 root 用户的文件时要小心。例如,您在实例 A 上的 mysql 用户可能与您在实例 B 上的 postfix 用户具有相同的 UID,如果您使用同一个名称 chown 文件然后将卷移回 A,这可能会导致问题。

    总结

    完成并且对/vol-a 下的文件感到满意后,卸载文件系统(仍在实例 B 上):
    sudo umount /vol-a
    sudo rmdir /vol-a

    现在,使用 ec2-api-tools 返回您的系统,继续将 EBS 卷移回原始实例 A 上的位置,然后再次启动该实例:
    ec2-detach-volume $volume
    ec2-attach-volume --instance $instance_a --device /dev/sda1 $volume
    ec2-start-instances $instance_a

    希望你解决了这个问题,实例 A 出现得很好,你可以完成你最初打算做的事情。如果没有,您可能需要继续重复这些步骤,直到它起作用为止。

    注意:如果您在停止实例 A 时为其分配了弹性 IP 地址,则需要在再次启动后重新关联它。

    记住!如果你的实例 B 只是为了这个过程而临时启动的,不要忘记现在终止它。

    关于amazon-web-services - 将 key 对添加到现有 EC2 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3260739/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com