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

当前回答

当您创建新的EC2实例时,会提示您更改文件权限

很容易通过执行-来解决

Chmod 400 mykey.pem

其他回答

解决这个问题的方法是将.pem文件移到apps目录中。fooapp是我的应用程序的名字。我把它直接放在那里。

在windows中,您可以进入pem文件的属性,然后进入安全选项卡,然后单击“前进”按钮。

删除继承和所有权限。然后给自己完全的控制权。毕竟SSL不会再给你同样的错误。

看看这篇文章。您不使用公共DNS,而是使用表单

ssh -i your.pem root@ec2-XXX-XXX-XXX-XXX.z-2.compute-1.amazonaws.com

在AMI面板上可以看到名字的地方

只需将pem文件的权限更改为0600,只允许允许的用户使用,它就会像魅力一样工作。

sudo chmod 0600 myfile.pem

然后尝试ssh,它会完美地工作。

ssh -i myfile.pem <<ssh_user>>@<<server>>

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

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

chmod 400 pemkeyname.pem

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

sudo chmod 400 pemkeyname.pem

否则,如果没有任何工作,请按照本视频更改EC2实例上的密钥。现在可以在实例上安装公共/私有密钥对。

https://youtu.be/LvLlRCrS8B4