我在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 0600 mykey.pem 您试图登录的ec2用户错误。 查看您的调试日志,我认为您已经生成了一个Amazon linux实例。该实例类型的默认用户是ec2-user。如果实例是ubuntu,那么默认用户就是ubuntu。 SSH -i privatekey。pem default_ssh_user@server_ip

Note: For an Amazon Linux AMI, the default user name is ec2-user. For a Centos AMI, the default user name is centos. For a Debian AMI, the default user name is admin or root. For a Fedora AMI, the default user name is ec2-user or fedora. For a RHEL AMI, the default user name is ec2-user or root. For a SUSE AMI, the default user name is ec2-user or root. For an Ubuntu AMI, the default user name is ubuntu. Otherwise, if ec2-user and root don't work, check with the AMI provider.

来源:https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstancesLinux.html

其他回答

在windows中,

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

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

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

Chmod 400 xyz.pem

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

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

您可能使用了错误的用户名登录,因为-

大多数Ubuntu映像都有一个用户Ubuntu 亚马逊的AMI是ec2-user 大多数Debian映像都有根或管理员

登录时,需要调整ssh命令:

ssh -l USERNAME_HERE -i .ssh/yourkey.pem public-ec2-host

修改密钥文件的权限:

chmod 400 key-file-name.pem

有关连接到实例的信息,请参阅AWS文档:教程:开始使用Amazon EC2 Linux实例

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

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

chmod 400 pemkeyname.pem

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

sudo chmod 400 pemkeyname.pem

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

https://youtu.be/LvLlRCrS8B4