将密钥对导入Amazon AWS - 错误的指纹?

sun*_*ica 7 ssh amazon-ec2 amazon-web-services

我正在尝试从我的计算机导入现有的密钥对以在EC2中使用.但是,一旦我点击"是,导入",亚马逊显示的指纹ssh -lf与同一个键显示的指纹不匹配.我已经验证它们是相同的密钥,尝试重新导入密钥等.通常的做法似乎是使用"创建密钥对"部分,但我更喜欢使用我通常的SSH密钥对.我也无法使用SSH登录到设置为使用此密钥对的实例(我得到Permission denied (publickey).).

有没有人遇到过AWS这样的问题?对问题可能是什么的任何见解?

sun*_*ica 9

AWS论坛中似乎有一个关于指纹差异的答案.我将这些内容粘贴给后人:

你好,

我与同事讨论过,看起来我们的目的是限制以不同格式提供密钥对.您会注意到亚马逊生成的密钥对和导入密钥对的不同长度.对于亚马逊生成的密钥对,指纹用于私钥,而如果使用导入密钥对,则指纹用于公钥.Amazon不会保留生成的私钥的副本,但EC2命令行工具确实提供了重现SSH2 MD5指纹的方法:

ec2-fingerprint-key ./testpair1-private.pem 61:26:cc:7d:2a:2c:a4:e9:fb:86:ca:ef:57:d6:68:f8:24:bc:59:光盘

这应该与您在控制台中看到的创建密钥的区域相匹配,例如US-West-1(北加州).不幸的是,ec2-fingerprint-key命令行工具没有指纹公钥.如果您在其他区域(例如US-East-1)中导入公钥,则Web AWS Console将仅显示公钥的指纹.

其次,AWS控制台应该更清楚它显示的指纹类型,这是"RFC4716第4节中规定的MD5公钥指纹"(也称为SSH2格式),如下所述:

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

我们已经为基于Web的AWS控制台提供了功能请求,以支持更常见的OpenSSH格式.遗憾的是,我无法找到任何用户友好的工具来生成SSH2/RFC4716格式指纹,但我确实发现您可以在原始区域中导入相同的公钥(名称如"Test2")并匹配显示区域之间的指纹.

(强调我的)

正如他所提到的,我也无法找到任何工具来生成SSH2/RFC4716格式指纹.这至少解决了指纹不匹配的谜团(至少如果我们假设ssh-keygen -lf以"更常见的OpenSSH格式"给出输出,请纠正我,如果这个假设是错误的); Permission denied (publickey)当我尝试ssh时,我仍然会得到一个,但我认为现在不是真正的关键不匹配,并探索其他途径.


pow*_*tom 5

这是验证指纹的另一种方法:

openssl pkcs8 -in my-aws-key.pem -nocrypt -topk8 -outform DER | openssl sha1 -c
Run Code Online (Sandbox Code Playgroud)