EC2实例连接和IAM公钥



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

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

我所做的是:

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

完成所有这些操作后,如果我尝试将SSH连接到盒子中,它将不起作用,并且在我的/var/log/secure中,我看到预验证失败。

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

然而,我对EC2实例连接方法的理解是,它为我提供了一种管理基于公钥的实例访问的中心方法。

我说得对吗?

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

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

谢谢!

EC2实例连接的工作原理如下:
  • 您发出一个命令,将临时公钥推送到实例,例如:
$ 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实例连接软件与ssh进程对接,并检查提供的ssh密钥是否与send-ssh-public-key推送的公钥匹配(并且在收到该密钥后的60秒内(
  • 如果匹配,则允许SSH会话

请参阅:使用EC2实例连接-亚马逊弹性计算云

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

最新更新