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

当前回答

Windows 10。

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

现在它为我工作了

其他回答

我看到了这个问题背后的两个原因

1) access key没有正确的权限。具有默认权限的Pem密钥不允许进行安全连接。你只需要更改权限:

Chmod 400 xyz.pem

2)还要检查您是否使用正确的用户凭证登录。否则,在连接时使用sudo

Sudo SSH -i {keyfile} ec2-user@{远程主机ip地址}

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

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

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

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

chmod 400 pemkeyname.pem

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

sudo chmod 400 pemkeyname.pem

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

https://youtu.be/LvLlRCrS8B4

您还应该检查.pem文件是否已损坏。我花了大约一个小时挠头,决定用这条线检查一下

openssl rsa -check -in test.pem -noout

如果它返回“RSA key ok”,那么就没问题了。如果没有,请确保您有正确的文件,或出于某种原因正确地复制了它。

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