2012-03-09 68 views
28

我在git中工作。 在Windows中,我使用git扩展来管理这个项目,并访问他们给我一个.ppk键的公共仓库。我将它加载到git扩展中,使用他们给我的密码,并且它可以工作。ssh密钥短语在Windows中工作,但不在linux中

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

,从我在这个网站,我使用,克隆库,下面的命令已经看到了另一个线程:

ssh-agent bash -c 'ssh-add /home/myHome/mykey.ppk; git clone [email protected]:project.git' 

然后,壳告诉我要插入密码

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

但是当我插入它时,它告诉我这是一个不好的密码。我已经检查了很多次,并且我确定我使用的是我在Windows中使用的相同密码。那么我怎样才能在Linux中正确使用密钥?

在此先感谢您的答复。

+0

您用于克隆存储库的命令看起来有点奇怪。这是你的问题的标记错误?如果没有,你应该先熟悉Linux命令行。 – lunaryorn 2012-03-09 09:07:11

+1

我已经在另一个线程中检查过这个命令,并且它使用一个私有密钥而不将它存储到ssh配置中。 – Jepessen 2012-03-09 18:22:34

回答

55

Linux SSH客户端(通常为OpenSSH)无法读取Windows SSH客户端Putty使用的PPK格式。您需要先将提供给您的“PPK”密钥转换为OpenSSH密钥。安装“腻子”在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代理。

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

+0

感谢它解决了我的问题! – Jepessen 2012-03-09 09:13:41

+0

感谢这为我工作。 – 2012-08-06 12:25:48

+4

谢谢。良好的指导。我使用了窗户PUTTYGen。我加载了密钥文件并转到“转换>导出OpenSSH密钥”,然后将其保存为 .pem – 2013-11-06 21:53:17

相关问题