我想使用我的亚马逊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到我的远程计算机。经过大量的搜索,我的问题的解决方案是文件权限。当然,这很奇怪,因为我没有改变任何权限在我的计算机或远程属于ssh的文件/目录。从archlinux的维基百科中可以看到:

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

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

对于远程机器,这样做:

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

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

其他回答

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

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

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

对于远程机器,这样做:

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

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

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

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

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

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

ssh -i pemfile.pem -l ubuntu dns

它是区分大小写的。

错误:SSH EC2-user@XXX.XX.XX.XX -i MyEC2KeyPair.pem

正确方法:SSH ec2-user@XXX.XX.XX.XX -i MyEC2KeyPair.pem