【问题标题】:SSH Connect to Ec2 instance using IAM user使用 IAM 用户 SSH 连接到 Ec2 实例
【发布时间】:2020-06-21 15:32:19
【问题描述】:

我创建了一个 IAM 用户并尝试使用 SSH 连接到它。我已经尝试过 OPenSSH 和 Putty,但无法使用其中任何一个进行连接。

在浏览器中,我使用 root 用户登录。

  1. 使用以下命令创建密钥对:
ssh-keygen

最后的矩形图说使用了 RSA 2048 , SHA 256 算法。

  1. 已登录 Amazon Web 控制台。导航到我创建的 IAM 用户并上传使用步骤 1 获取的公钥。
IAM -> User -> Security Credential -> Upload ssh public key.
  1. OpenSSH 的选项 1
  C:\Users>ssh -i "C:\Users\UserName\.ssh\id_rsa" IamUser@awspublicIp
The authenticity of host 'awspublicIp' can't be established.
ECDSA key fingerprint is SHA256:nLBtVuJWST7tf7FJGqjxaNYFGQfJw1z/5U3tOGC9byE.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'awspublicIp' (ECDSA) to the list of known hosts.
IamUser@awspublicIp: Permission denied (publickey).

在这里,我将 ECDSA 列为罪魁祸首,不知道这是从哪里挑选出来的。

使用 putty 的选项 2 也不起作用。

Creating or importing a key pair 建议的文档令人困惑。

我使用了以 pem 格式创建 keyPair 的选项。从 OpenSSH 连接时,它显示 Permission denied(public Key)。所以我通过ssh-keygen -y -f "C:\Users\Downloads\test.pem"创建了公钥。

将此公钥上传到 IAM -> 用户 -> 安全凭证 -> 上传 ssh 公钥。 不过,我还是无法连接。

谁能帮我解决这个问题?我现在很困惑,基本上,我想使用 IAM 帐户而不是 Root 进行 SSH 连接到 EC2。

【问题讨论】:

  • 您的实际目标是什么?您希望使用密钥对通过 SSH 连接,还是希望使用 IAM 凭证连接到实例?它们是不同的方法。
  • 我想使用 IAM 用户而不是 root 用户连接到我的 EC2 实例。我可以使用 IAM 用户的凭证登录到 Web 控制台。我认为 ec2-instance-connect 是 Chris 强调的解决方案。

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


【解决方案1】:

您在此处添加的 pem 密钥实际上是在 code commit 服务中使用的。

如果您想通过 IAM 凭证连接到实例,那么您有两种选择:

  • 您可以通过EC2 Instance Connect 进行设置和连接。此方法将允许您通过 SSH 通过普通终端方法进行连接。
  • 您可以通过 AWS CLI 使用 Session Manager 进行连接。此方法将通过使用 AWS CLI 从安装了 CLI 的任何命令行启动会话来执行。

您在上面链接的文档用于生成 PEM 以供您的实例的默认用户使用。

希望这会有所帮助。

【讨论】:

  • 好的。我会试一试的。
  • 当然,祝你好运:)
  • 嗨,ec2-instance-connect 看起来像是我的问题的解决方案。我可以看到它始于 2019 年,并提供了一个 60 年代的窗口来进行 ssh 登录。但我无法下载 ec2-instance-connect。运行命令后我得到以下响应。 1) uname -srv Linux 4.14.181-108.257.amzn1.x86_64 #1 SMP Wed May 27 02:43:03 UTC 2020 2) sudo yum install ec2-instance-connect 加载的插件:priorities, update-motd, upgrade-helper没有可用的包 ec2-instance-connect。错误:无事可做
  • 我已经将我的 AMI 升级到 Amazon2 linux 现在我可以成功地为 root 用户进行实例连接。为 IAM 用户启用实例连接。我在自定义策略下创建并附加到我的 IAM 用户所属的组,但我仍然无法为 IAM 用户进行实例连接。保存策略时收到的警告是“此策略不授予任何权限。要授予访问权限,策略必须具有具有适用资源或条件的操作。有关详细信息,请选择显示剩余了解更多”
  • { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2-instance-connect:SendSSHPublicKey" ] , "资源": [ "arn:aws:ec2:MyRegion:MyAccountId:instance/*" ], "条件": { "StringEquals": { "ec2:osuser": "ec2-user" } } } ] }
猜你喜欢
  • 1970-01-01
  • 2022-10-14
  • 2019-02-26
  • 2020-08-07
  • 2020-07-30
  • 2019-12-06
  • 2015-03-14
  • 2016-04-15
  • 2020-03-13
相关资源
最近更新 更多