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

当前回答

问题是文件上的权限集错误。

执行chmod 400 mykey.pem可以很容易地解决这个问题

此解决方案取自AWS说明:

要使SSH正常工作,密钥文件必须是不可公开的。chmod 400 mykey.pem

400通过使其仅为所有者只读来保护它。

其他回答

问题是文件上的权限集错误。

执行chmod 400 mykey.pem可以很容易地解决这个问题

此解决方案取自AWS说明:

要使SSH正常工作,密钥文件必须是不可公开的。chmod 400 mykey.pem

400通过使其仅为所有者只读来保护它。

您需要在密钥文件(myfile.pem)上设置一些保守的权限。 试着把它改成r-------- 或400

检查表:

您是否使用正确的私钥.pem文件? 它的权限设置正确吗?(我的亚马逊品牌ami使用644个,但红帽必须至少600或400个。不了解Ubuntu。) 您在ssh行中使用的用户名是否正确?Amazon-branded = "ec2-user", Red Hat = "root", Ubuntu = " Ubuntu "。用户可以指定为“ssh -i pem usename@hostname”或“ssh -l username -i pem hostname”

如果没有权限别忘了sudo。 Sudo SSH -i myfile。pem < < ssh_user > > @ < >

这只是您的aws pem密钥的权限问题。

使用以下命令将pem密钥的权限更改为400即可。

chmod 400 pemkeyname.pem

如果您没有权限更改文件的权限,您可以使用sudo像下面的命令。

sudo chmod 400 pemkeyname.pem

我希望这能正常工作。