Ssh

為什麼我的兩個 ssh 公鑰開頭相同?

  • January 5, 2022

我正在使用我得到的新筆記型電腦的公鑰更新伺服器上的 authorized_keys 文件,我驚訝地發現兩個公鑰的開頭相同:

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

AAAAB3...等等有什麼故事?通過線上搜尋,我發現其他鍵的開頭也相同。它是否解釋了算法或版本或其他內容?

這實際上是一個標頭,它定義了這是什麼類型的鍵。如果您查看RFC 4253的公鑰算法部分,我們可以看到 RSA 密鑰

“ssh-rsa”密鑰格式具有以下特定編碼:

 string    "ssh-rsa"
 mpint     e
 mpint     n

這裡的 ’e’ 和 ’n’ 參數形成簽名密鑰 blob。

事實上,如果您對字元串“B3NzaC1yc2E”進行 Base64 解碼,您會看到它轉換為 ASCII 為“ssh-rsa”。大概“AAAA”代表某種標頭,因此應用程序可以確切地知道在數據流中的哪個位置開始處理密鑰。

引用自:https://serverfault.com/questions/526399