Openssl

pem 文件差異 - ssh-keygen 與 openssl

  • March 17, 2022

我使用生成了我的公鑰/私鑰對

ssh-keygen -t rsa -b 2048 -v

然後需要一個 .pem 文件並遵循此https://serverfault.com/questions/706336/how-to-get-a-pem-file-from-ssh-key-pair

ssh-keygen -f id_rsa -e -m pem   
-----BEGIN RSA PUBLIC KEY-----

但後來我發現了這個https://gist.github.com/mingfang/4aba327add0807fa5e7f

openssl rsa -in ~/.ssh/id_rsa -outform pem
-----BEGIN RSA PRIVATE KEY-----

為什麼輸出不同?

它們就是這樣寫的;PEM_write_RSAPublicKey(stdout, k->rsa)OpenSSH 通過呼叫 的do_convert_to_pem函式發出公鑰材料ssh-keygen.c,而 OpenSSL 則對給定的私鑰進行操作。使用 OpenSSH,我想大多數情況是將公鑰轉換為可在某些外部伺服器上使用的形式,而私鑰在客戶端系統上保持私有,因此對密鑰對的公鑰進行操作是有意義的. 使用 OpenSSL,沒有“將公鑰轉換為適合其他 SSH 伺服器的形式”的問題,因此程式碼直接在私鑰上執行。不同的程式碼,不同的意圖,不同的結果。

引用自:https://unix.stackexchange.com/questions/257010