该问题源于 AWS EC2 生成的 ed25519 SSH 密钥的指纹,无论该密钥是否被加密,都会在指纹中添加一个额外的=
填充。这可能导致某些 SSH 客户端无法正确处理密钥指纹,从而影响到 SSH 连接。
解决方法之一是手动删除密钥指纹中的额外=
填充。这可以通过以下 Python 代码示例实现:
import base64
# 加载 EC2 密钥文件
with open('/path/to/ec2_key.pub') as f:
key_data = f.read().strip().split()
# 解码 ed25519 密钥指纹
fingerprint = base64.b64decode(key_data[1].encode('utf-8')).hex()
# 删除填充并打印指纹
fingerprint = fingerprint.rstrip('00')
print(fingerprint)
该代码读取 EC2 密钥文件,并使用 base64 解码其中的 ed25519 密钥指纹。然后,它会删除尾随的00
字节并打印出指纹。
在实际使用过程中,可能需要根据不同的 SSH 客户端要求修改指纹格式。可以参考 AWS 文档中的指南进行操作。