SSH 密钥指纹
计算 OpenSSH 公钥的指纹,结果与 ssh-keygen -l 的输出完全一致。粘贴一行来自 id_ed25519.pub、authorized_keys 或 known_hosts 的内容,或 RFC 4716 SSH2 公钥块,即可获取 SHA-256 指纹(base64 格式)、旧版 MD5 指纹(冒号分隔的十六进制格式)、密钥类型、长度和注释。支持 RSA、DSA、ECDSA、Ed25519 和 FIDO 安全密钥,每次最多处理 100 个密钥。
常见问题
此工具需要什么输入?
粘贴一行 OpenSSH 公钥,例如 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAA... user@host,每行一个密钥。也支持前面带选项的 authorized_keys 行,以及前面带主机名的 known_hosts 行,因为密钥类型位于行内。空行和以 # 开头的行会被跳过。
SHA-256 指纹是如何计算的?
base64 密钥数据会先解码为二进制密钥块,再使用 SHA-256 进行哈希,并写为 SHA256: 后接不带末尾 = 填充的 base64。这是 ssh-keygen -l、OpenSSH 主机密钥提示和 GitHub 使用的格式。
MD5 指纹有什么用途?
较早的 OpenSSH 版本(6.8 之前)和某些托管控制面板仍会显示 MD5 格式:16 个字节,以小写十六进制数对表示,并用冒号分隔。其前缀为 MD5:,与 ssh-keygen -E md5 -l 一致。比较时建议使用 SHA-256。
支持哪些密钥类型?
支持 ssh-rsa、ssh-dss、ssh-ed25519、ecdsa-sha2-nistp256、nistp384 和 nistp521,以及 FIDO 安全密钥类型 sk-ssh-ed25519@openssh.com 和 sk-ecdsa-sha2-nistp256@openssh.com。不支持以 -cert-v01@openssh.com 结尾的 OpenSSH 证书。
如何确定密钥长度?
RSA 和 DSA 密钥会报告其模数或素数的位数;ECDSA 密钥会根据曲线报告 256、384 或 521;Ed25519 密钥会报告 256。工具还会检查密钥块内部的类型是否与前置类型一致。
可以粘贴 RFC 4716 SSH2 公钥吗?
可以。工具会读取 PuTTYgen 和某些商业 SSH 服务器导出的 ---- BEGIN SSH2 PUBLIC KEY ---- 与 ---- END SSH2 PUBLIC KEY ---- 之间的内容,并读取其 Comment 标头。每个块计为一个密钥。
ssh-keygen 输出行显示什么?
它会复现 ssh-keygen -l -f key.pub 的输出:长度、SHA-256 指纹、注释和括号中的类型,例如 256 SHA256:... user@host (ED25519)。如果密钥没有注释,则不会显示注释,与 ssh-keygen 的行为一致。
可以粘贴私钥吗?
不可以,也不应该这样做。此工具只读取公钥。若要在自己的计算机上从私钥文件获取公钥,请运行 ssh-keygen -y -f ~/.ssh/id_ed25519,然后粘贴其输出。
为什么我的密钥被报告为无效?
base64 数据可能不完整、被换行拆开或与其他密钥混在一起,也可能是前置类型与密钥块不匹配。请重新从 .pub 文件复制完整的一行,并保持在单行内。
有数量限制吗?会保存任何内容吗?
每次最多可粘贴 100 个密钥和 262,144 个字符。公钥仅在处理本次请求时保存在内存中,绝不会记录或保存。