Ssh
為什麼我的兩個 ssh 公鑰開頭相同?
我正在使用我得到的新筆記型電腦的公鑰更新伺服器上的 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”代表某種標頭,因此應用程序可以確切地知道在數據流中的哪個位置開始處理密鑰。