【问题标题】:EC2 Instance Connect and IAM public keysEC2 实例连接和 IAM 公钥
【发布时间】:2020-07-30 02:27:52
【问题描述】:

我正在设置一个新的 EC2 Amazon Linux 2 AMI,并尝试设置 EC2 Instance Connect,因为它已预安装在我的新实例上。

根据我对文档的理解,我应该能够创建一个 IAM 用户,向该用户添加一个公共密钥,然后使用 IAM 用户的(公共)密钥通过 SSH 连接到框中,而无需创建EC2 实例上的 .ssh 文件夹。

我所做的是:

  1. 在我的 IAM 用户应映射到的 EC2 实例上创建一个用户(我们称他为 bob)
  2. 已将我的公共 OpenSSH 密钥上传给 IAM 用户
  3. 创建了允许操作 ec2-instance-connect:SendSSHPublicKey 的权限策略(根据文档)

一旦这些都完成了,如果我尝试通过 SSH 连接到盒子,它就不起作用,并且在我的 /var/log/secure 中我看到了预认证失败。

如果我创建 .ssh/authorized_keys 文件并正确设置权限,一切正常。

但是,我对 EC2 Instance Connect 方法的理解是,它为我提供了一种集中方式来管理对我的实例的基于公钥的访问。

我说的对吗?

我在设置的过程中是否遗漏了什么?

我发现文档有点不清楚,所以一些见解会有所帮助。

谢谢!

【问题讨论】:

  • “已将我的公共 OpenSSH 密钥上传给 IAM 用户”是什么意思?

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


【解决方案1】:

EC2 Instance Connect 的工作原理如下:

  • 您发出一个将临时公钥推送到实例的命令,例如:
$ aws ec2-instance-connect send-ssh-public-key --instance-id i-001234a4bf70dec41EXAMPLE --availability-zone us-west-2b --instance-os-user ec2-user --ssh-public-key file://my_rsa_key.pub
  • 然后您使用密钥对的私有部分建立到实例的 SSH 连接
  • 在实例内,EC2 Instance Connect 软件与 ssh 进程交互,并检查提供的 SSH 密钥是否与使用 send-ssh-public-key 推送的公钥匹配(并且在 60 秒内接收该密钥)
  • 如果匹配,则允许 SSH 会话

见:Connect Using EC2 Instance Connect - Amazon Elastic Compute Cloud

EC2 Instance Connect 还提供了一个基于 Web 的界面,它既可以启动上述过程(使用临时随机密钥对),也可以提供 SSH 界面。这样做时,SSH 连接似乎来自 AWS 内部,而不是您自己的 IP 地址。这是因为 Web 界面使用 HTTPS 到 AWS,然后 AWS 建立到实例的 SSH 连接。这会对安全组配置产生影响。

【讨论】:

    猜你喜欢
    • 2019-05-16
    • 1970-01-01
    • 1970-01-01
    • 2019-02-26
    • 1970-01-01
    • 2013-05-26
    • 2014-11-01
    • 1970-01-01
    • 2016-02-17
    相关资源
    最近更新 更多