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


当前回答

这种情况在我身上发生过很多次。我使用的是Amazon Linux AMI 2013.09.2和Ubuntu Server 12.04.3 LTS,它们都在免费层。

每次我启动一个实例,我都有拒绝显示的权限。我还没有验证这一点,但我的理论是,在我尝试ssh进入它之前,服务器还没有完全设置好。在尝试了几次被拒绝后,我等了几分钟,然后我就可以连接了。如果你遇到这个问题,我建议你等五分钟再试一次。

其他回答

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

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

这是一个基本的事情,但一定要确认您要登录哪个用户。我的案子只是分散你的注意力。我试着用root用户

ssh -i ~/keys/<key_name> root@111.111.111.111

但另一位用户说:

ssh -i ~/keys/<key_name> dedeco@111.111.111.111

这个问题可以通过下面的命令登录Ubuntu系统来解决:

ssh -i ec2key.pem ubuntu@ec2-public-IP

我犯了同样的错误,但情况不同。对我来说,在很长一段时间后,我可以成功地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 12.04 LTS微实例,我必须将用户名设置为选项

ssh -i pemfile.pem -l ubuntu dns