Amazon EC2 实例“权限被拒绝(公钥)”

Posted

技术标签:

【中文标题】Amazon EC2 实例“权限被拒绝(公钥)”【英文标题】:Amazon EC2 instance "Permission denied (publickey)" 【发布时间】:2016-02-17 22:14:42 【问题描述】:

我一直使用这个命令通过 SSH 访问我的服务器

ssh -i "KeyPair.pem" ubuntu@52.26.255.0

今天我尝试了相同的命令并收到此错误消息

Permission denied (publickey)

使用-v 选项我收到了这条消息

OpenSSH_6.6.1, OpenSSL 1.0.1m 19 Mar 2015
debug1: Connecting to 52.26.255.0 [52.26.255.0] port 22.
debug1: Connection established.
debug1: identity file C:\\Users\\Jacob\\Google Drive\\KeyPair.pem type -1
debug1: identity file C:\\Users\\Jacob\\Google Drive\\KeyPair.pem-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.6.1
debug1: Remote protocol version 2.0, remote software version OpenSSH_6.6.1p1 Ubuntu-2ubuntu2
debug1: match: OpenSSH_6.6.1p1 Ubuntu-2ubuntu2 pat OpenSSH_6.6.1* compat 0x04000000
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5-etm@openssh.com none
debug1: kex: client->server aes128-ctr hmac-md5-etm@openssh.com none
debug1: sending SSH2_MSG_KEX_ECDH_INIT
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: Server host key: ECDSA e3:51:6f:9a:ed:2f:a2:dd:50:9d:19:a2:0a:f4:88:10
debug1: Host '52.26.255.0' is known and matches the ECDSA host key.
debug1: Found key in /.ssh/known_hosts:2
debug1: ssh_ecdsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Trying private key: C:\\Users\\Jacob\\Google Drive\\KeyPair.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.
Permission denied (publickey).

我没有修改我的 KeyPair.pem 文件(“修改日期”= 24-Sep-15)

一件很重要的事情。最后成功授权的时候我在服务器上执行了下一条命令:

home> chmod -R 777 ubuntu/

有没有可能,上面的命令破坏了我对服务器的访问权限?

【问题讨论】:

OpenSSH(客户端)不需要自己的格式密钥文件吗? (您确定 PEM 适用于它吗?)。通常在 2 个文件中,例如“id_rsa”和“id_rsa.pub”,然后使用-i id_rsa。是的,你不允许拥有一个世界可写的/home/ubuntu/.ssh 目录(这是chmod -R 777 ... 导致的),SSH 不会让你使用公钥,因为任何具有 shell 访问权限的人都可以替换它。这假定您的用户名是ubuntu。也许这有助于superuser.com/questions/215504/… 你用什么ami-id来部署实例?试试ssh -i "KeyPair.pem" ec2-user@52.26.255.0 【参考方案1】:

home> chmod -R 777 ubuntu/

是罪魁祸首。您的 /home/ubuntu/.ssh 目录必须是 700 并且 /home/ubuntu/.ssh/authorized_keys 必须是 600。由于他们现在是 777,所以你不走运。 Bur有办法恢复它。搜索 ***。

【讨论】:

以上是关于Amazon EC2 实例“权限被拒绝(公钥)”的主要内容,如果未能解决你的问题,请参考以下文章

Amazon ec2 显示“权限被拒绝(公钥)”

SSH 到 EC2 实例期间权限被拒绝(公钥)[重复]

权限被拒绝(公钥) Amazon Linux aws

尝试从其他计算机访问 ec2 时 ssh 权限被拒绝(公钥)

无法通过 SSH 连接到 EC2:权限被拒绝(公钥)

尝试使用 RSA 密钥通过 SSH 连接到 EC2,获取:不正确的 RSA1 标识符...权限被拒绝(公钥)