9

我用腻子生成了一个没有密码的密钥。putty 工作正常,但现在我安装了 cygwin 并想使用 ssh 登录。出于某种原因,我被提示输入密码?为什么?腻子直接登录?我不想生成新密钥并惹恼网络管理员。这是 cygwin 中的样子: $ ssh -i Documents\ and\ Settings/xxxxx/My\ Documents/xxxxx\ putty\ keys/private\ key.ppk dev.xxxxxx.com Enter passphrase for key 'Documents and Settings/ xxxxx/My Documents/xxxxx putty keys/private key.ppk':权限被拒绝(公钥)。

4

4 回答 4

19

Putty 对密钥文件使用自己的 .ppk 格式,而 Cygwin 的 ssh 可能无法正确读取它们。

解决方案:使用 puttygen.exe 将 .ppk 文件转换为 OpenSSH 密钥格式。

于 2009-02-22T16:38:01.840 回答
6

您需要从 putty 网页http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html获取“puttygen.exe”,以将您的密钥转换为 OpenSSH 格式。然后它应该可以工作。

于 2009-02-22T18:27:29.893 回答
2

如果您可以使用 putty 登录,则无需“惹恼网络管理员”。只需使用 cygwin 生成一个新密钥,然后使用 putty 登录并将新的公钥放入 .ssh/authorized_keys 文件中。您现在应该可以使用 cygwin 的 ssh 登录。

编辑:

顺便说一句,“惹恼”任何管理员的可靠方法是使用未加密的密钥。

于 2009-02-23T09:48:03.533 回答
2

您可以将 PuTTY 密钥导出为 OpenSSH 格式并将它们附加到您的 .ppk 文件中,使其成为 ssh-add 的有效密钥。

只需使用 PuTTYGen 导出私钥,然后将其添加到 .ppk 文件中,然后您应该可以 ssh-add 它。但请注意,当您使用 PuTTYGen 编辑 .ppk 本身时,它会覆盖该文件。

您还可以使用这样的脚本将 .ppk 文件添加到 SSH 代理中:

file=~/`basename $0`.tmp
trap "rm -v $file" EXIT
echo -n "Password: "
read -s pwd
echo $pwd | puttygen -P -q -O private-openssh $1 -o $file
ssh-add $file

来源:http ://bazaar.launchpad.net/~renatosilva/+junk/scripts/view/head:/ppk-add.sh

于 2012-04-02T05:13:00.883 回答