Openssl

選擇 OSX ssh-keygen 使用的加密算法

  • February 9, 2012

我有幾個使用者在 OSX 上使用SmartCVS與我們的 CVS 儲存庫進行互動。我們使用 cvs :ext:(SSH2) 方法來訪問儲存在遠端 linux 系統上的儲存庫。我們使用 ssh 密鑰身份驗證,並要求使用者使用密碼加密他們的私鑰。

OSX 附帶的 ssh-keygen 版本AES-128-CBC用於加密私鑰,顯然 SmartCVS 使用的任何 ssh 庫都不支持解密此密碼,因為它會引發錯誤。如果我使用 PuTTYgen 在 Windows 上生成一個密鑰並將該密鑰移到 OSX,一切正常。PuTTYgen(以及 linux 上大多數版本的 ssh-keygen)使用DES-EDE3-CBC密碼,SmartCVS 能夠毫無問題地解密。

所以,我的問題是:有沒有辦法告訴 ssh-keygen 在加密私鑰時使用哪個密碼?OSX 上的ssh-keygen(1)手冊頁沒有說明能夠設置密碼類型,但我希望在生成後可能有其他方法可以轉換為另一種密碼類型。

我不確定如何讓 ssh-keygen 使用特定的加密算法創建密鑰。

您可以直接使用 OpenSSL 生成您的密鑰。

# create 1024 bit rsa and encrypt with des3 
#    make sure you set your umask or chmod this so that it is 0600, 
#    or else ssh will refuse to use it.
openssl genrsa -des3 -out .ssh/id_rsa 1024
# export an ssh public key
ssh-keygen -y -f .ssh/id_rsa > .ssh/id_rsa.pub

您還可以在事後使用 OpenSSL 轉換現有密鑰的密碼。

openssl rsa -in id_rsa -out newkey_id_rsa -des3

請參閱:genrsa(1)rsa(1)ssh-keygen(1)以獲取各種選項的列表。

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