AWS EC2 - 为什么我的 SSH 公有密钥在连接时不存在



我正在尝试使用自己的公有密钥设置一个新的 Amazon EC2 实例,以便可以通过 SSH 进行连接。我使用 AWS 文档中所述的ssh-keygen生成了一个 RSA 密钥对,并使用 Web 界面将公有密钥上传到 Amazon。密钥通常显示在我的 AWS 控制面板中。假设我的公钥指纹是aa:aa:aa:aa:aa:aa:aa:aa:aa:aa:aa:aa:aa:aa:aa:aa

我可以创建一个新实例并使用 Web 界面指定此公钥(是的,我在启动机器之前指定了这个 - 这是启动前的最后一步)。实例似乎已创建并正常启动。我的公钥列在该实例的"密钥对名称"属性下。我使用的是 Ubuntu 12.04 LTS 操作系统,64 位映像:ubuntu-precision-12.04-amd64-server-20131003。

但是,当我尝试通过 ssh 连接时,我看不到密钥的指纹:

>无法确定主机'ec2-00-00-00-00.us-west-2.compute.amazonaws.com(00.00.00.00)'的真实性。
>RSA密钥指纹是bb:bb:bb。
>是否确实要继续连接(是/否)?不

(连接时使用实际IP地址)

我可以使用 ec2 命令行工具运行"ec2-get-console-output",如本答案所示。但是,我的公钥不会出现在控制台输出中的任何位置。存在另外两个键:

>您的公钥已保存在/etc/ssh/ssh_host_rsa_key.pub 中。
>密钥指纹是:
>bb:bb:bb:bb:bb:root@ip
bb: >...
>-----开始 SSH 主机密钥指纹-----
>ec2: 1024 cc:cc:cc:cc:cc:cc root@ip-00-00-00-00 (DSA)

如果我的密钥正在部署到实例上,为什么它不显示?

您看到的指纹是主机 ID,而不是您的 rsa/dsa 密钥 ID。因此,不应该有匹配。

您上传的公钥是服务器用于识别您的密钥。它与服务器标识无关。如果您希望验证服务器是否可以使用 ec2-get-console-output 命令,如您所提到的。

有关 ssh 密钥对的更多详细信息,请参阅Ask Ubuntu上的此答案。

最新更新