SSH密钥密码在Windows中有效但在Linux中无效

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:

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

提前感谢您的回复。


你正在使用的克隆存储库命令看起来有些奇怪。这是你问题中的标记错误吗?如果不是,你应该先熟悉Linux命令行。 - user355252
1
我在另一个线程中检查了这个命令,它使用私钥而不将其存储到ssh配置中。 - Jepessen
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

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

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


6
谢谢。好的指导。我使用了Windows的PUTTYGen工具,加载了密钥文件并进入了“Conversions > Export OpenSSH Key”选项,然后将其保存为<文件名>.pem格式。 - Shane van Wyk
4
我收到了这条信息:我得到了puttygen: ./../sshrand.c:313: random_byte: Assertion \random_active' failed`的报错信息 -- 似乎是一个已知问题,详见https://github.com/Homebrew/homebrew/issues/25734。 - pzkpfw
bigbadonk420:使用sudo运行puttygen。 - Manuel Arwed Schmidt

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接