32

我正在用 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 中正确使用密钥呢?

提前感谢您的回复。

4

1 回答 1

63

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

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

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

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

于 2012-03-09T09:05:43.813 回答