【问题标题】:EC2 Instance Connect fails when trying to connect to Deep Learning AMI尝试连接到 Deep Learning AMI 时 EC2 实例连接失败
【发布时间】:2019-11-25 08:22:22
【问题描述】:

我在Get started with deep learning using the AWS Deep Learning AMIs | AWS 之后创建了一个 AWS EC2 实例。现在它已启动并运行。它提供了 3 个连接选项:

通过独立 SSH 客户端的连接有效,但是当我尝试基于浏览器的 SSH 连接(第二个选项)时,会导致以下错误:

有谁知道可能出了什么问题以及如何解决?

【问题讨论】:

    标签: amazon-web-services ec2-ami


    【解决方案1】:

    看起来您需要在实例上设置 Instance Connect 才能使浏览器连接正常工作。从您链接的指南来看,我假设您使用的是基于 Ubuntu 16.04 的 AMI。 以下摘自this指南。

    1. 安装ec2-instance-connect 包。
    ubuntu:~$ sudo apt-get update
    ubuntu:~$ sudo apt-get install ec2-instance-connect
    

    您应该会在/usr/share/ec2-instance-connect/ 文件夹中看到四个新文件:

    eic_curl_authorized_keys
    eic_harvest_hostkeys
    eic_parse_authorized_keys
    eic_run_authorized_keys
    
    1. 为将使用 Instance Connect 的用户配置 IAM 权限。 创建包含以下内容的策略并将其附加到您的 IAM 用户(将实例 ARN 替换为您的实例的适当值)。
    {
        "Version": "2012-10-17",
        "Statement": [
          {
            "Effect": "Allow",
            "Action": "ec2-instance-connect:SendSSHPublicKey",
            "Resource": [
                "arn:aws:ec2:region:account-id:instance/i-1234567890abcdef0",
                "arn:aws:ec2:region:account-id:instance/i-0598c7d356eba48d7"
            ],
            "Condition": {
                "StringEquals": {
                    "ec2:osuser": "ubuntu"
                }
            }
          },
          {
            "Effect": "Allow",
            "Action": "ec2:DescribeInstances",
            "Resource": "*"
          }
        ]
    }
    

    浏览器连接现在应该可以工作了。

    【讨论】:

    • 相当复杂.. 我在创建策略时遇到了困难。 aws iam create-policy --policy-name my-policy --policy-document file://JSON-file-name 失败并显示“无法找到凭据。您可以通过运行“aws configure”来配置凭据。'
    • 是的,需要在运行任何命令之前配置 aws-cli。或者,您可以从 AWS Web 控制台执行所有操作 - 转到 IAM 服务,选择左侧的 Users,选择您的用户,单击 Add permissions,然后单击 Attach existing policies directly 并搜索 EC2InstanceConnect 策略,然后单击几下Next 按钮,你应该准备好了。
    • IAM 用户未列出任何用户。我应该创建一个吗?
    • 这意味着您正在使用具有所有管理员权限的帐户的 root 用户。在这种情况下,您不需要创建任何策略,只需尝试连接到您的实例(但请确保在那里安装了 ec2-instance-connect 包)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多