我在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
我知道这个问题已经被回答了,但是对于那些已经尝试过所有这些方法的人来说,你仍然会得到恼人的“拒绝许可(公钥)”。尝试使用SUDO运行您的命令。当然,这是一个临时的解决方案,您应该正确地设置权限,但至少可以让您确定当前用户没有运行所需的权限(正如您所假设的那样)。
Sudo SSH -i amazonec2。pem ec2 - xxx - xxx - xxx xxx.us -西方- 2. compute.amazonaws.com
一旦你这样做了,你会得到这样的消息:
请以“ec2-user”用户而不是“root”用户登录。
这也鲜有文献记载。在这种情况下,只需这样做:
Sudo SSH -i amazonec2。Pem ec2-xxx-xxx-xxx-xxx -us -west-2.compute.amazonaws.com -l ec2-user
你会得到光荣的:
__| __|_ )
_| ( / Amazon Linux AMI
___|\___|___|