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

右键单击pem文件。然后选择属性。 选择安全选项卡——>单击“高级”按钮——>禁用继承——>删除该对象的所有继承权限 点击“添加”按钮——>选择主体——>在输入框中输入用户名——>点击“检查名称”按钮——>点击“确定”——>点击“确定”——>点击“确定”——>点击“确定”

其他回答

默认情况下,无论何时下载密钥文件,它都带有644个权限。

因此,每次下载新密钥时,都需要更改权限。

 chmod 400 my_file.pem

在Windows下,打开。pem文件,右键单击并选择属性。

在安全选项卡中进入高级 禁用并删除继承。 然后按“添加”,选择一个主体。 添加帐户用户名作为对象名称,并按确定。 给予所有的许可。 应用并保存更改。

现在检查上面的命令

视窗 10 - PowerShell

icacls.exe .\Desktop\xxxx.pem /reset
icacls.exe .\Desktop\xxxx.pem /grant:r "$($env:USERNAME):(r)"
icacls.exe .\Desktop\xxxx.pem /inheritance:r

ssh -i .\Desktop\xxxx.pem ec2-user@54.2xx.xxx.x

macos与linux

chmod 400 ~/Desktop/xxxx.pem

ssh -i ~/Desktop/xxxx.pem ec2-user@54.2xx.xxx.x

检查表:

您是否使用正确的私钥.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”

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