尝试使用 RSA 密钥通过 SSH 连接到 EC2,获取:不正确的 RSA1 标识符...权限被拒绝(公钥)
Posted
技术标签:
【中文标题】尝试使用 RSA 密钥通过 SSH 连接到 EC2,获取:不正确的 RSA1 标识符...权限被拒绝(公钥)【英文标题】:Trying to use RSA Keys to SSH into EC2, Getting: Incorrect RSA1 identifier... permission denied (public key) 【发布时间】:2012-09-09 02:25:00 【问题描述】:我在 Amazon EC2 上创建了一个 Ubuntu 12.04 实例。
我已经下载了 PEM 文件并且能够通过 SSH 连接到实例,没问题。
现在,我想在远程实例上为顾问等创建一些帐户。 他们应该能够使用 RSA 密钥 ssh 进入盒子。在 EC2 机器上,我在 ~/home/ 中设置了几个帐户,并将它们分配给组 admin。我也给自己一个类似的帐户(MyTestAccount)进行测试。这就是我所做的:
我使用 key-gen 在本地机器 (~/.ssh) 上的 .ssh 目录中创建公钥和私钥:
drwx------ 2 peter peter 1024 Sep 14 10:23 .ssh
还有里面的文件:
-rw------- 1 peter peter 1675 Sep 14 10:23 id_rsa
-rw------- 1 peter peter 394 Sep 14 10:23 id_rsa.pub
-rw------- 1 peter peter 444 Sep 14 00:05 known_hosts
然后我将 id_rsa.pub 文件 SCP 到我的远程 EC2 实例并将其附加到 我的远程实例中的 .ssh/authorized_keys 文件。我的遥控器的权限 .ssh 目录:
drwx------ 2 ubuntu ubuntu 4096 Sep 16 16:13 .ssh
我的授权密钥文件:
-rw------- 1 peter ubuntu 1179 Sep 14 00:05 authorized_keys
接下来,我注销了我的远程实例并尝试使用新密钥通过 SSH 连接到远程机器。当我发出以下命令时:
peter@ubuntu:~/.ssh$ ssh -vvv MyTestAccount@ec2-XX-XXX-XX-XXX.compute-1.amazonaws.com
我得到以下信息。我的私钥好像有问题?有什么建议?谢谢。
OpenSSH_5.9p1 Debian-5ubuntu1, OpenSSL 1.0.1 14 Mar 2012
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug2: ssh_connect: need priv 0
debug1: Connecting to ec2-XX-XXX-XX-XXX.compute-1.amazonaws.com [XX.XXX.XX.XXX] port 22.
debug1: Connection established.
debug3: Incorrect RSA1 identifier
debug3: Could not load "/home/peter/.ssh/id_rsa" as a RSA1 public key
debug1: identity file /home/peter/.ssh/id_rsa type 1
debug1: Checking blacklist file /usr/share/ssh/blacklist.RSA-2048
debug1: Checking blacklist file /etc/ssh/blacklist.RSA-2048
debug1: identity file /home/peter/.ssh/id_rsa-cert type -1
debug1: identity file /home/peter/.ssh/id_dsa type -1
debug1: identity file /home/peter/.ssh/id_dsa-cert type -1
debug1: identity file /home/peter/.ssh/id_ecdsa type -1
debug1: identity file /home/peter/.ssh/id_ecdsa-cert type -1
[剪辑...]
debug2: we sent a publickey packet, wait for reply
debug1: Authentications that can continue: publickey
debug1: Trying private key: /home/peter/.ssh/id_dsa
debug3: no such identity: /home/peter/.ssh/id_dsa
debug1: Trying private key: /home/peter/.ssh/id_ecdsa
debug3: no such identity: /home/peter/.ssh/id_ecdsa
debug2: we did not send a packet, disable method
debug1: No more authentication methods to try. **Permission denied (publickey).**
【问题讨论】:
你试过用ssh -i /path/to/your/key yourserver
建立SSH连接吗?
【参考方案1】:
这种情况很正常,并不奇怪。 你收到的消息:
debug3:RSA1 标识符不正确 debug3:无法加载“/home/user_name/.ssh/id_rsa”作为 RSA1 公钥
确实不表示错误。 RSA1 公钥仅用于 SSH 协议 1,该协议已经过时。现在主要使用 SSH 协议 2。
在正常的 SSH 登录过程中,您很可能会看到带有 ssh -vvv
的警告消息。
你可能会感到惊讶,但别担心,这很正常。
参考:https://bbs.archlinux.org/viewtopic.php?id=122646, #9
【讨论】:
来自论坛:“这意味着您的 id_rsa 文件不是 RSA1 公钥,这是一件好事,因为 RSA1 公钥仅用于 SSH 协议版本 1” 下一行 (debug1: identity file /home/peter/.ssh/id_rsa type 1
) 表示成功解析同一文件。 1
可能会令人困惑,因为它表示成功,不是 SSH 协议版本!
这没有帮助,也没有告诉我们他的问题。以上是关于尝试使用 RSA 密钥通过 SSH 连接到 EC2,获取:不正确的 RSA1 标识符...权限被拒绝(公钥)的主要内容,如果未能解决你的问题,请参考以下文章
复制我的身份证_rsa.pub公司通过ssh连接到远程服务器授权的u密钥