我有几个用户在OSX上使用SmartCVS来与我们的CVS库进行交互。 我们使用cvs :ext: (SSH2)方法来访问存储在远程linux系统上的仓库。 我们使用ssh密钥authentication,并要求用户使用密码encryption他们的私钥。
OSX附带的ssh-keygen版本使用AES-128-CBC来encryption私钥,显然任何ssh库SmartCVS都不支持解密这个密码,因为它会引发错误。 如果我使用PuTTYgen在Windows上生成一个密钥,并将该密钥移到OSX,事情工作正常。 PuTTYgen(和Linux上的大多数版本的ssh-keygen)使用DES-EDE3-CBC密码,SmartCVS能够解密而不会出现问题。
所以,我的问题是:有没有办法告诉ssh-keygenencryption私钥时使用哪个密码? OSX上的ssh-keygen(1)手册页并没有提到可以设置密码types的任何内容,但是我希望可以通过其他方式转换成另一种密码types。
我不知道如何让ssh-keygen使用特定的encryptionalgorithm创build密钥。
您可以直接使用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)以获取各种选项的列表。