为什么新 Mac、旧 Mac 和旧 Windows 机器的 id_rsa 密钥长度不同

为什么新 Mac、旧 Mac 和旧 Windows 机器的 id_rsa 密钥长度不同

ssh-keygen -t rsa当我在 Windows 和旧 Mac 上执行时,我得到一个 38 行的id_rsa文件。

当我在新 Mac 上执行相同的命令时,我得到一个 27 行的文件。

我只是想知道为什么我得到不同的结果?

以下是在我的旧电脑上生成的密钥的示例:

-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAABlwAAAAdzc2gtcn
<redacted>
CyL+jJfbBajg0AAAAXamFtZXNkb2xkaXNzZW5AamFtZXNtYWMBAgME
-----END OPENSSH PRIVATE KEY-----

而在较新的版本中:

-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAABFwAAAAdzc2gtcn
<redacted>
eooc0bZ1A6i0/nvoSwAAABVkb2xkaXNqYUBDMDJXNjBFWEhURDgBAgME
-----END OPENSSH PRIVATE KEY-----

答案1

使用ssh-keygen -l -f filename查看关键细节

为了“在旧电脑上生成的密钥”, 你会得到:

3072 SHA256:oOI4YwCA2Yu1qJJ7dCM2pH5f49gUbJs0Kl5kDL7KNDI [email protected] (RSA)

以及关键“在较新的”

2048 SHA256:7uJvPe1MKKcfWpIGo3Mr4x5zNHZAXL3Y92C5rzZVBDs [email protected] (RSA)

因此密钥的位数不同。OpenSSH 自 8.0 版起生成 3072 位密钥。旧版本(自 4.0 版起)生成 2048 位密钥。尽管两个密钥都是BEGIN OPENSSH PRIVATE KEY,但即使是生成 2048 位密钥的机器也必须至少有 7.8


不同 OpenSSH 版本可能导致的另一个差异是默认密钥格式。请参阅相关问题:ssh-keygen [-o] 有什么作用?
但这里的情况并非如此,因为两个键都是“新”OPENSSH PRIVATE KEY格式。

相关内容