我想使用我的亚马逊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上传/下载文件?
此错误消息表示您身份验证失败。
以下是导致这种情况的常见原因:
试着用错误的键连接。您确定这个实例正在使用这个对吗?
试图连接错误的用户名。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通常会非常明确地说明哪里出了问题,这在对这个问题的许多其他答案中都有解释。
此错误消息表示您身份验证失败。
以下是导致这种情况的常见原因:
试着用错误的键连接。您确定这个实例正在使用这个对吗?
试图连接错误的用户名。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通常会非常明确地说明哪里出了问题,这在对这个问题的许多其他答案中都有解释。
我挣扎着同样的权限拒绝错误显然是由于
key_parse_private2: missing begin marker
在我的情况下,原因是当前用户的ssh配置文件(~/.ssh/config)。
使用以下方法:
ssh -i ~/myKey.pem ec2-user@<IP address> -v 'exit'
初步输出结果显示:
debug1: Reading configuration data /home/ec2-user/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 56: Applying options for *
debug1: Hostname has changed; re-reading configuration
debug1: Reading configuration data /home/ec2-user/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
…许多调试线在这里切断…
debug1: Next authentication method: publickey
debug1: Trying private key: /home/ec2-user/somekey.pem
debug1: key_parse_private2: missing begin marker
debug1: read PEM private key done: type RSA
debug1: Authentications that can continue: publickey
debug1: No more authentication methods to try.
上面的第三行是实际发现问题的地方;然而,我在调试消息从底部(上面)四行,并被误导。钥匙没有问题,但我测试了一下,比较了其他配置。
我的用户ssh配置文件通过一个意外的全局设置重置主机,如下所示。第一行Host不应该是注释。
$ cat config
StrictHostKeyChecking=no
#Host myAlias
user ec2-user
Hostname bitbucket.org
# IdentityFile ~/.ssh/somekey
# IdentitiesOnly yes
Host my2ndAlias
user myOtherUser
Hostname bitbucket.org
IdentityFile ~/.ssh/my2ndKey
IdentitiesOnly yes
我希望这对其他人有帮助。