我想使用我的亚马逊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上传/下载文件?


当前回答

我也有同样的问题,这很奇怪。如果你相信你所做的一切都是好的,那么请遵循以下的原则: 有时会混淆EC2实例的用户!!有时你会得到ec2-user, ubuntu, centos等等。所以检查你的用户名的机器!!

以root用户登录 SSH -i你的密钥。Pem(400权限)root@<ip> 它将抛出错误,并将提供可用的用户名。然后使用该用户登录。

其他回答

以我自己为例,我做了以下事情:

chmod 400 <key.pem>

ssh -i <key.pem> ec2-user@ec2_public_dns (for debian)

我最初使用root@部分,我得到了这个提示:

Please login as the user "ec2-user" rather than the user "root".

我也为此挣扎了一段时间,直到我发现了以下几点:

eb ssh

当你从项目目录中使用它时,没问题,没问题,你就进入了

我可以从一台机器上SSH,但不能从另一台机器上SSH。原来我用错了私钥。

我解决这个问题的方法是从我的私钥中获取公钥,就像这样:

Ssh-keygen -y -f ./myprivatekey.pem

输出的内容与~/中的内容不匹配。ssh/authorized_keys在EC2实例上。

对于ubuntu 12.04 LTS微实例,我必须将用户名设置为选项

ssh -i pemfile.pem -l ubuntu dns

这就是我解决问题的方法

ssh -i <key> ec2-user@<ec2 ip>