ssh密钥密码可以在Windows中运行,但不能在Linux中运行

时间:2012-03-09 08:55:33

标签: git ssh passphrase

我正在使用git工作。 在Windows中,我使用git扩展来管理这个项目,并且为了访问公共存储库,他们给了我一个.ppk密钥。我把它加载到git扩展中,带有他们给我的密码,然后就可以了。

现在我设置了一个linux(ubuntu-32bit)虚拟机,我也希望从这台机器访问存储库。

从我在本网站上看到的另一个帖子中,我使用以下命令来克隆存储库:

ssh-agent bash -c 'ssh-add /home/myHome/mykey.ppk; git clone git@serveraddress:project.git'

然后,shell告诉我插入密码短语

Enter passphrase for /home/myHome/mykey.ppk:

但是当我插入它时,它告诉我这是一个糟糕的密码短语。我已经检查了很多次,我确信我使用的是与Windows中使用的密码相同的密码。那么如何正确使用Linux中的密钥呢?

提前感谢您的回复。

1 个答案:

答案 0 :(得分:59)

Linux SSH客户端(通常是OpenSSH)无法读取Windows SSH客户端Putty使用的PPK格式。你需要转换" PPK"首先将密钥提供给OpenSSH密钥。安装" putty"在Linux上并使用puttygen命令行工具:

$ sudo aptitude install putty
$ mkdir -p ~/.ssh
$ puttygen ~/mykey.ppk -o ~/.ssh/id_rsa -O private-openssh

输入您的密码,您将在标准位置~/.ssh/id_rsa获得与OpenSSH兼容的密钥。之后,您可以使用ssh-add(不带任何参数!)将此密钥添加到SSH代理。

或者,您可以在Windows上使用putty提供的PUTTYgen程序。