我最近遇到了这个问题,因为我正在从Putty for Linux迁移到Remmina for Linux . 所以我在我的 .putty 目录中为Putty提供了很多PPK文件,就像我've been using it'已经有8年了 . 为此,我使用简单的 for 命令为bash shell执行所有文件:
cd ~/.putty
for X in *.ppk; do puttygen $X -L > ~/.ssh/$(echo $X | sed 's,./,,' | sed 's/.ppk//g').pub; puttygen $X -O private-openssh -o ~/.ssh/$(echo $X | sed 's,./,,' | sed 's/.ppk//g').pvk; done;
8 回答
较新版本的PuTTYgen(我的是0.64)能够在
.ssh/authorized_keys
文件中显示要粘贴在linux系统中的OpenSSH公钥,如下图所示:这将自动安装puttygen工具 .
现在要转换要与SSH命令一起使用的PPK文件,请在终端中执行以下命令
然后,您可以通过SSH连接:
http://www.graphicmist.in/use-your-putty-ppk-file-to-ssh-remote-server-in-ubuntu/#comment-28603
我认为TCSgrad试图问(几年前)是如何使Linux的行为与他的Windows机器一样 . 也就是说,存在代理(选美),其保存私钥的解密副本,使得密码只需要被放入一次 . 然后,ssh客户端putty可以登录到其公钥被列为“已授权”而没有密码提示的计算机 .
这样做的模拟是Linux, acting as an ssh client ,有一个持有解密私钥的代理,这样当TCSgrad输入"ssh host"时,ssh命令将获得他的私钥,并且不会被提示输入密码 . 当然,主机必须在〜/ .ssh / authorized_keys中持有公钥 .
这个场景的Linux模拟是使用ssh-agent(选美模拟)和ssh-add(将模板添加到选美的私钥)来完成的 .
对我有用的方法是使用:$ ssh-agent $ SHELL $ SHELL是我需要让代理运行并保持运行的神奇技巧 . 我发现在网上的某个地方,结束了几个小时的撞击我的头撞墙 .
现在我们有了pageant的模拟运行,没有加载密钥的代理 .
单独输入$ ssh-add将添加(默认情况下)〜/ .ssh中默认身份文件中列出的私钥 .
可以找到包含更多详细信息的网络文章here
如果您拥有PuTTY样式的用户公钥,则可以将其转换为标准的openssh格式,如下所示:
参考文献
来源:http://www.treslervania.com/node/408
镜子:https://web.archive.org/web/20120414040727/http://www.treslervania.com/node/408 .
文章副本
或者,如果要从PuTTY格式化密钥文件中获取私钥和公钥,则可以在* nix系统上使用
puttygen
. 对于大多数基于apt的系统,puttygen
是putty-tools
包的一部分 .从PuTTY格式化密钥文件输出私钥:
$ puttygen keyfile.pem -O private-openssh -o avdev.pvk
对于公钥:
$ puttygen keyfile.pem -L
我最近遇到了这个问题,因为我正在从Putty for Linux迁移到Remmina for Linux . 所以我在我的
.putty
目录中为Putty提供了很多PPK文件,就像我've been using it'已经有8年了 . 为此,我使用简单的for
命令为bash shell执行所有文件:很快就到了这一点,为putty所有的文件完成了工作 . 如果找到带密码的密钥,它将停止并首先询问该密钥的密码,然后继续 .
在linux下创建密钥并使用PuTTYgen将密钥转换为PuTTY格式可能更容易 .
PuTTY Faq: A.2.2
puttygen
支持将您的私钥导出为OpenSSH兼容格式 . 然后,您可以使用OpenSSH工具重新创建公钥 .打开PuttyGen
单击“加载”
加载您的私钥
转到
Conversions->Export OpenSSH
并导出您的私钥将您的私钥复制到
~/.ssh/id_dsa
(或id_rsa
) .使用
ssh-keygen
创建公共密钥的RFC 4716版本见this和this了解更多信息 .