AWS EC2 密钥中的 ed25519 指纹中的额外“=”填充

Extra `=` padding in ed25519 fingerprint in AWS EC2 key

我遇到了一个有趣的场景,我的 imported/created ed25519 SSH 密钥生成的指纹与 ssh-keygen 在 AWS EC2 密钥控制台中报告的不同。

例如,考虑我生成的随机密钥,其 ssh-keygen 指纹是:

64OuseEfObM7yYiEyK7u42qN1kHj6/JGnpro1XqO4pM

AWS 生成的指纹是这样的:

64OuseEfObM7yYiEyK7u42qN1kHj6/JGnpro1XqO4pM=

所以,出于某种原因,有额外的填充。有谁知道为什么会这样?或者,有人知道 AWS 是如何生成这些指纹的吗?最后 = 消失的 trim 就可以了吗?我的意思是填充大部分是可选的,但我想生成相同的指纹以便我可以比较它们。

另请注意,这仅适用于 ed25519 密钥。正常的 RSA 工作正常。我知道他们做了一些奇怪的事情,将其转换为 OpenSSL 然后再返回或类似的东西。但我认为 ed25519 并非如此......

干杯!

我知道了。

也来自这里的其他帖子,但答案是他们使用的是 base64 sha256 openssl 组合,如下所示:

$ cat ~/.ssh/ec2-key.pub | base64 -w0 -d | openssl dgst -binary -sha256 | base64 -w0; echo

pub 密钥是从下载的 ec2 pem 密钥生成的,如下所示:

ssh-keygen -y -f ~/.ssh/ec2-key.pem > ~/.ssh/ec2-key.pub