为什么我的两个SSH公钥有相同的开始?

我正在使用我得到的新笔记本电脑的公钥更新服务器上的authorized_keys文件,我惊奇地发现两个公钥开始相同:

# key 1 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQ.... # # key 2 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQ.... 

AAAAB3...的故事是AAAAB3...等等? 随着一些在线search,我看到其他键也开始相同。 它是解释algorithm还是版本?

这实际上是一个标题,它定义了这是什么样的关键。 如果您查看RFC 4253的公钥algorithm部分,我们可以看到对于RSA密钥

“ssh-rsa”密钥格式具有以下特定编码:

  string "ssh-rsa" mpint e mpint n 

这里'e'和'n'参数构成签名密钥blob。

事实上,如果你Base64解码string“B3NzaC1yc2E”,你会看到它翻译成ASCII码为“ssh-rsa”。 据推测,“AAAA”表示某种头部,所以应用程序可以知道数据stream中的哪个部分开始处理密钥。

SSH公钥格式在RFC 4253中有记载,并在这里进行了总结。 PEM编码的数据由许多(长度,数据)对组成,第一对编码algorithm名称,这将是类似ssh-rsassh-dsa

这意味着所有ssh密钥的公钥数据的初始部分将是相似的。