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

Jep*_*sen 31 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'
Run Code Online (Sandbox Code Playgroud)

然后,shell告诉我插入密码

Enter passphrase for /home/myHome/mykey.ppk:
Run Code Online (Sandbox Code Playgroud)

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

提前感谢您的回复.

lun*_*orn 61

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
Run Code Online (Sandbox Code Playgroud)

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

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

  • 谢谢.好指南.我使用了窗户PUTTYGen.我加载了密钥文件并转到"Conversions> Export OpenSSH Key",然后将其保存为<thename> .pem (6认同)
  • 我得到`puttygen:./../sshrand.c:313:random_byte:断言\`random_active'失败了 - 似乎是一个已知的问题https://github.com/Homebrew/homebrew/issues/25734 (4认同)