我遇到了一个有趣的场景,为我导入/创建的ed25519 SSH密钥生成的指纹与AWS EC2密钥控制台上ssh-keygen
报告的指纹不同。
ssh-keygen
指纹为:
64OuseEfObM7yYiEyK7u42qN1kHj6/JGnpro1XqO4pM
AWS生成的指纹如下:
64OuseEfObM7yYiEyK7u42qN1kHj6/JGnpro1XqO4pM=
因此,由于某种原因,有额外的填充。有人知道为什么会这样吗?或者,有人知道AWS是如何生成这些指纹的吗?修剪掉最后的=
是可以的吗?我的意思是填充大部分是可选的,但我想生成相同的指纹,所以我可以比较它们。
还要注意,这只适用于ed25519键。正常的RSA工作正常。我知道他们做了一些不稳定的事情把它转换成OpenSSL,然后再转换回来之类的。但我认为ed25519不是这样的……
干杯!
我明白了。
从这里的其他帖子,但答案是,他们正在使用base64 sha256 openssl组合像这样:
$ cat ~/.ssh/ec2-key.pub | base64 -w0 -d | openssl dgst -binary -sha256 | base64 -w0; echo
从下载的ec2 pem密钥生成pub密钥,如下所示:
ssh-keygen -y -f ~/.ssh/ec2-key.pem > ~/.ssh/ec2-key.pub