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

当前回答

SSH -i /。pem user@host-machine-IP

我想可能是因为你输入了错误的凭证 或者,您使用的是公钥而不是私钥 或者,您的端口权限是开放的ALL到ssh。这对亚马逊不利。

其他回答

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

Windows 10。

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

现在它为我工作了

视窗 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”

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

chmod 400 yourPrivateKey.pem