选择 OSX ssh-keygen 使用的加密算法

选择 OSX ssh-keygen 使用的加密算法

我有几个用户使用智能CVS在 OSX 上与我们的 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 在加密私钥时使用哪种密码?ssh-keygen(1)OSX 上的手册页没有提到能够设置密码类型,但我希望在生成后可能还有其他方法可以转换为另一种密码类型。

答案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)以获取各种选项的列表。

相关内容