Openssl
選擇 OSX ssh-keygen 使用的加密算法
我有幾個使用者在 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)以獲取各種選項的列表。