2013-10-08 34 views
5

我正试图从我的计算机中导入现有的密钥对以在EC2中使用。但是,一旦我点击“是,导入”,亚马逊显示的指纹与ssh -lf显示的指纹对于相同的密钥不匹配。我已验证它们是同一个密钥,试图重新导入密钥等。常见做法似乎是使用“创建密钥对”部分,但我宁愿使用通常的SSH密钥对。我也无法使用SSH登录设置为使用此密钥对的实例(我获得Permission denied (publickey).)。将密钥对导入Amazon AWS - 指纹错误?

有没有人遇到过这样的AWS问题?对这个问题可能有什么看法?

+1

我在ServerFault上添加了更详细的答案:http://serverfault.com/q/603982/102814 –

回答

7

指纹差异似乎有an answer in the AWS forums。我在这里粘贴内容为后人:

你好,

我与我的同事们讨论,看起来是从 我们的最终限制在不同的格式提供密钥对。您会注意到亚马逊生成的密钥对和导入密钥 对的不同长度。在亚马逊生成的密钥对的情况下,私钥的指纹为 ,而如果您使用导入密钥对,则指纹 用于您的公钥。亚马逊没有保留产生 私人密钥的副本,但EC2命令行工具确实提供了一种以 重现SSH2 MD5指纹:

EC2指纹钥匙./testpair1-private.pem 61: 26:cc:7d:2a:2c:a4:e9:fb:86:ca:ef:57:d6:68:f8:24:bc:59:cd

这应该与您在控制台中看到的相符为您创建密钥的区域,例如US-West-1(北加利福尼亚州)。 不幸的是,ec2-fingerprint-key命令行工具没有 指纹公钥。如果您在另一个 区域(如US-East-1)中导入公钥,则Web AWS控制台将仅显示公钥的 指纹。

其次,AWS控制台应更清楚对什么类型 指纹它显示,这是(也称为SSH2格式)为“在RFC4716的第4条指明MD5公钥指纹作为 ”的 这里提到:

http://docs.amazonwebservices.com/AWSEC2/latest/CommandLineReference/ApiReference-cmd-ImportKeyPair.html

我们已经投入为基于Web的AWS控制台 功能请求,支持更常见的OpenSSH格式。不幸的是我不是 能够找到任何用户友好的工具来生成SSH2/RFC4716 格式的指纹,但我确实发现您可以在您的原始区域中输入相同的 公钥(名称如“Test2”)和 匹配区域之间显示的指纹。

(重点矿)

正如他提到,我也没能找到任何工具来生成SSH2 /格式RFC4716指纹。这至少解决了不匹配指纹的奥秘(至少如果我们假设ssh-keygen -lf以“更常见的OpenSSH格式”给出输出,如果此假设错误,请纠正我)。当我尝试使用ssh时,我仍然收到Permission denied (publickey),但我会认为它现在不是实际的密钥不匹配,并且正在探索其他途径。

+0

有趣的答案,谢谢。顺便说一句,你是如何解决这个问题的(我认为你现在应该可以)? –

+0

对于我自己,它忘记指定'admin @'...> _ < – phyzome

+0

老问题,但我今天有同样的权限被拒绝(publickey),并且在我意识到之前将我的头撞了近半个小时我将创建一个Amazon Linux映像而不是Ubuntu映像,所以默认用户是'ec2-user'而不是'ubuntu'。 – SomeCallMeTim