尝试连接到 Deep Learning AMI 时 EC2 Instance Connect 失败
EC2 Instance Connect fails when trying to connect to Deep Learning AMI
我在 Get started with deep learning using the AWS Deep Learning AMIs | AWS 之后创建了一个 AWS EC2 实例。现在已经启动 运行。它提供了 3 个连接选项:
通过独立 SSH 客户端的连接有效,但是当我尝试基于浏览器的 SSH 连接(第二个选项)时,它会导致以下错误:
有谁知道可能出了什么问题以及如何解决?
您似乎需要在实例上设置 Instance Connect 才能使浏览器连接正常工作。从您链接的指南来看,我假设您使用的是 Ubuntu 基于 16.04 的 AMI。
以下内容摘自 this 指南。
- 安装
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
- 为将使用 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": "*"
}
]
}
浏览器连接现在应该可以工作了。
我在 Get started with deep learning using the AWS Deep Learning AMIs | AWS 之后创建了一个 AWS EC2 实例。现在已经启动 运行。它提供了 3 个连接选项:
通过独立 SSH 客户端的连接有效,但是当我尝试基于浏览器的 SSH 连接(第二个选项)时,它会导致以下错误:
有谁知道可能出了什么问题以及如何解决?
您似乎需要在实例上设置 Instance Connect 才能使浏览器连接正常工作。从您链接的指南来看,我假设您使用的是 Ubuntu 基于 16.04 的 AMI。 以下内容摘自 this 指南。
- 安装
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
- 为将使用 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": "*"
}
]
}
浏览器连接现在应该可以工作了。