我想使用我的亚马逊ec2实例,但面临以下错误:

Permission denied (publickey).

我已经创建了密钥对并下载了.pem文件。

考虑到:

chmod  600 pem file.

然后,这条命令

ssh -i /home/kashif/serverkey.pem  ubuntu@ec2-54-227-242-179.compute-1.amazonaws.com

但是有这样的错误:

Permission denied (publickey)

另外,我如何连接filezilla上传/下载文件?


当前回答

上面所有排名靠前的答案都是准确的,应该适用于大多数情况。如果它们不像我的情况一样,我只是去掉了~/。ssh/known_hosts文件在我试图ssh的机器上,这为我解决了问题。后来我和他联系上了。

其他回答

您需要执行以下步骤:

如果您使用的是Linux,请打开ssh客户端或终端。 找到您的私钥文件并更改目录。 CD <您的。pem文件>的路径 执行以下命令: Chmod 400 <filename>.pem SSH -i <filename>。pem ubuntu@ < ipaddress.com >

如果ubuntu用户无法使用,那么尝试使用ec2-user。

同样的事情也发生在我身上,但所发生的只是私钥从我本地机器上的钥匙链上丢失了。

ssh-add - k

重新添加密钥,然后SSH命令连接恢复工作。

我在Windows中使用WinSCP。它在文件资源管理器和PuTTY SSH Shell上都能很好地访问我的Amazon EC2-VPC Linux。chmod pem文件没有任何作用,因为它使用myfile。PuTTYgen将pem文件转换为ppk。

我犯了同样的错误,但情况不同。对我来说,在很长一段时间后,我可以成功地SSH到我的远程计算机。经过大量的搜索,我的问题的解决方案是文件权限。当然,这很奇怪,因为我没有改变任何权限在我的计算机或远程属于ssh的文件/目录。从archlinux的维基百科中可以看到:

对于本地机器,执行以下操作:

$ chmod 700 ~/
$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/id_ecdsa

对于远程机器,这样做:

$ chmod 700 ~/
$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/authorized_keys

在那之后,我的SSH开始重新工作,没有权限拒绝(公钥)的事情。

此错误消息表示您身份验证失败。

以下是导致这种情况的常见原因:

试着用错误的键连接。您确定这个实例正在使用这个对吗? 试图连接错误的用户名。ubuntu是基于ubuntu的AWS发行版的用户名,但在其他一些debian上它是ec2-user(或admin,根据Bogdan Kulbida的回答)(也可以是root, fedora,见下文) 试图连接错误的主机。这是您要登录的主机吗?

注意1。如果你把/home/<用户名>/弄乱了,也会发生这种情况。EC2实例上的ssh/authorized_keys文件。

约2。,关于您应该使用哪个用户名的信息通常缺乏从AMI映像描述。但您可以在AWS EC2文档中找到一些,要点4。: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstancesLinux.html

使用ssh命令连接到实例。您将指定私钥(.pem)文件和user_name@public_dns_name。对于Amazon Linux,用户名为ec2-user。对于RHEL5,用户名是root或ec2-user。对于Ubuntu操作系统,用户名为Ubuntu。对于Fedora,用户名为“Fedora”或“ec2-user”。对于SUSE Linux操作系统,用户名为root。否则,如果ec2-user和root不起作用,请与AMI提供程序进行检查。

最后,请注意身份验证失败还有许多其他原因。如果您想在SSH命令中添加-v选项并读取输出,SSH通常会非常明确地说明哪里出了问题,这在对这个问题的许多其他答案中都有解释。