ssh 密钥密码在 Windows 中有效,但在 linux 中无效
Posted
技术标签:
【中文标题】ssh 密钥密码在 Windows 中有效,但在 linux 中无效【英文标题】:ssh key passphrase works in windows but not in linux 【发布时间】:2012-03-26 17:42:42 【问题描述】:我正在用 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中正确使用key呢?
提前感谢您的回复。
【问题讨论】:
您用来克隆存储库的命令看起来有些奇怪。这是您问题中的标记错误吗?如果没有,您可能应该先熟悉 Linux 命令行。 我已经在另一个线程中检查了这里的命令,它使用私钥而不将其存储到 ssh 配置中。 【参考方案1】: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 程序。
【讨论】:
谢谢。好向导。我使用了 Windows PUTTYGen。我加载了密钥文件并转到“转换 > 导出 OpenSSH 密钥”,然后将其保存为puttygen: ./../sshrand.c:313: random_byte: Assertion `random_active' failed
-- 似乎是一个已知问题github.com/Homebrew/homebrew/issues/25734
bigbadonk420:使用 sudo 运行 puttygen。以上是关于ssh 密钥密码在 Windows 中有效,但在 linux 中无效的主要内容,如果未能解决你的问题,请参考以下文章