我在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).

在这篇文章之后,我尝试chmod +600 .pem文件,但现在当我ssh时,我只是得到

Permission denied (publickey).

我犯了什么小学生的错误? pem文件在我的主文件夹中(在macOS中)。它的权限是这样的:

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

当前回答

我知道现在已经很晚了……但这对我来说总是有效的:

# #第1步

ssh-add ~/.ssh/KEY_PAIR_NAME.pem

##第二步,简单地SSH在:)

ssh user_name@<instance public dns/ip>

e.g.

ssh ec2-user@ec2-198-51-100-1.compute-1.amazonaws.com

其他回答

2022年2月更新:

参见在AWS上ssh到EC2实例的描述:

然后,你可以在下面看到“No.3”说:

所以,运行下面的命令,如“No.3”所示:

chmod 400 myKey.pem

在Mac终端,执行“chmod 400 xyz。“Pem”并没有帮到我,它一直说拒绝许可。对于ubuntu用户,我建议

ssh-add xyz.pem SSH -i xyz。Pem ubuntu@ec2-54-69-172-118.us-west-2.compute.amazonaws.com(注意用户是ubuntu)

您不是root用户,然后运行此命令

sudo chmod 400 -R myfile.pem

如果不是root用户,则执行此命令

chmod 400 -R myfile.pem

你可以从ASW指南中找到答案。 400通过使其仅为所有者只读来保护它。

chmod 400 mykey.pem

Windows 10。

. 右键单击文件 . 属性—>security—>禁用继承 .现在添加->你的用户(窗口)只有“读” . 单击ok

现在它为我工作了