协慌网

登录 贡献 社区

尝试通过 SSH 进入 Amazon Ec2 实例 - 权限错误

对某些人来说,这可能是一个愚蠢的简单问题:)

我在 Amazon EC2 上创建了一个新的 linux 实例,并且作为其中一部分下载了. pem 文件,以允许我进行 SSH 输入。

当我尝试使用 ssh 时:

ssh -i myfile.pem <public dns>

我有:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for 'amazonec2.pem' are too open.
It is recommended that your private key files are NOT accessible by others.
This private key will be ignored.
bad permissions: ignore key: amazonec2.pem
Permission denied (publickey).

这篇文章之后,我试图将 + 600 pem 文件修改为 chmod,但是现在当我使用 ssh 时,我得到的是:

Permission denied (publickey).

我在这里犯了什么男生错误? .pem 文件在我的主文件夹中(在 osx 中)。它的权限如下所示:

-rw-------@   1 mattroberts  staff    1696 19 Nov 11:20 amazonec2.pem

答案

问题是文件上的 mod 错误。

执行即可轻松解决 -

chmod 400 mykey.pem

取自亚马逊的指示 -

您的密钥文件必须是公开可见的,SSH 才能正常工作。如果需要,请使用以下命令:chmod 400 mykey.pem

400 通过将其设置为只读且仅对所有者开放来对其进行保护。

您可能使用了错误的用户名登录:

  • 大多数 Ubuntu 映像都有一个用户ubuntu
  • 亚马逊的 AMI 是ec2-user
  • 大多数 Debian 映像都具有rootadmin

要登录,您需要调整 ssh 命令:

ssh -l USERNAME_HERE -i .ssh/yourkey.pem public-ec2-host

高温超导

我知道这对游戏来说很晚了…… 但这始终对我有用:

步骤 1

ssh-add ~/.ssh/KEY_PAIR_NAME.pem

步骤 2,只需在:) 中使用 ssh

ssh user_name@<instance public dns/ip>

例如

ssh [email protected]

希望这对某人有帮助。