我知道在Windows下可以在puttygen下转换.ppk,但是在Linux上怎么做呢?这可能吗?

#1 楼

使用Putty进行操作。 /> Ubuntu sudo apt-get install putty-tools

类似Debian的apt-get install putty-tools
基于RPM的yum install putty

Gentoo emerge putty

Archlinux sudo pacman -S putty

等。


OS X:安装Homebrew,然后运行brew install putty

将密钥放在某个目录中,例如您的主文件夹。
现在将PPK密钥转换为SSH密钥对:缓存搜索

生成私钥:

cd ~
puttygen id_dsa.ppk -O private-openssh -o id_dsa


并生成公共密钥:

puttygen id_dsa.ppk -O public-openssh -o id_dsa.pub


将这些密钥移至~/.ssh并确保将您的私有密钥的权限设置为private:

mkdir -p ~/.ssh
mv -i ~/id_dsa* ~/.ssh
chmod 600 ~/.ssh/id_dsa
chmod 666 ~/.ssh/id_dsa.pub


如果您已经尝试执行'git clone'操作,则可能还需要执行此操作

chmod 666 ~/.ssh/known_hosts


评论


您好我已经有一个.pub然后需要再次创建公钥

–阿米特·贝拉(Amit Bera)
2014年8月20日在12:19



如果您是来这里寻找如何在Windows中进行操作的,请运行“ puttygen yourkey.ppk”,然后在“转换”菜单下选择“导出OpenSSH密钥”以获取私钥。

– Ryan Shillington
2014年9月22日在16:46

@jous的解决方案更好,因为您不需要私钥来转换公钥,也不需要安装腻子

– Tobi
15年8月19日在12:55

我必须将此密钥添加到我的./ssh/config文件中主机mysite.com主机名mysite.com IdentityFile〜/ .ssh / id_dsa IdentitiesOnly是

–vladkras
16年1月12日在16:33



某些椭圆曲线格式(ECDS等)仅在beta油灰工具中可用。

–丹尼尔·W。
16 Mar 23 '16 at 10:27

#2 楼

ssh-keygen -i -f id_dsa_1024_a.pub > id_dsa_1024_a_openssh.pub
标志是从非openssh格式导入的




-i标志意味着从输入文件读取:burnz.wordpress.com上的博客文章

评论


.ppk文件是完整的密钥对,我不认为上面的命令或博客文章适用于此。

– Peter Becker
13年2月7日在0:27

我想我的意思是,如果您使用puttygen的“保存公共密钥”按钮,它会起作用。 ssh-keygen无法理解真正的.ppk文件,因为它们缺少那些'---- BEGIN SSH2 PUBLIC KEY ----'标记。不过,您可以在.ppk文件中的“ Public-Lines:..”行和“ Private-Lines:..”行之间找到公钥。

– jous
2014年1月7日14:35

这对于我使用公共密钥文件有效-Puttygen似乎需要私钥。似乎它所做的只是将base-64部分重新排列为一行

–詹森
2015年3月12日在3:10



这似乎没有涵盖私钥,这就是为什么我要进行转换,因为我已经在某个地方保存了公钥...

– Gert van den Berg
16年2月6日在9:47

是的,我见过的ppk文件具有适当的标记,并且效果很好。

– tylerl
19年9月8日在21:40

#3 楼

获取私钥:

在puttygen中打开.ppk文件:

puttygen ~/.ssh/id_dsa.ppk


导出为openssh:

转换→导出OpenSSH密钥

获取公共密钥:

像带puttygen的私有密钥之前一样打开,公共密钥位于
公共密钥下,用于粘贴到OpenSSH authorized_keys文件

#4 楼

我准备了一个Docker容器以简化生活:

docker run --rm \
           --volume=/path/to/file.ppk:/tmp/id_dsa.ppk \
           --volume=/path/to/output:/tmp/out/ \
           czerasz/putty-tools


其中:



您的ppk文件

/path/to/file.ppk-应放置私钥和公钥的本地路径


评论


大。图片谢谢!但是与此同时-volume = / path / to / file.ppk:/tmp/id.ppk而不是id_dsa.ppk

– pHiL
16-10-4在16:38

您可能想添加--network none

– Xorax
20-10-12在13:55