我正在使用我得到的新笔记本电脑的公钥更新服务器上的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-rsa
或ssh-dsa
。
这意味着所有ssh密钥的公钥数据的初始部分将是相似的。