代码之家  ›  专栏  ›  技术社区  ›  TCSGrad

如何将使用puttygen(windows)生成的ssh密钥对转换为ssh代理和密钥链(linux)使用的密钥对

  •  414
  • TCSGrad  · 技术社区  · 15 年前

    我使用puttygen生成了密钥对,并使用pagent登录,因此在系统启动时只需输入一次密码短语。

    如何在Linux中实现这一点?我听说过 keychain 但我听说它使用了不同的密钥对格式——我不想更改我的Windows密钥,如果我能在Windows和Linux中以同样的方式无缝连接,那就太好了。

    8 回复  |  直到 6 年前
        1
  •  645
  •   Charles    11 年前

    puttygen 支持将私钥导出为与openssh兼容的格式。然后可以使用openssh工具重新创建公钥。

    1. 开腻子
    2. 单击加载
    3. 加载您的私钥
    4. Conversions->Export OpenSSH 然后导出你的私钥
    5. 把你的私钥复制到 ~/.ssh/id_dsa (或) id_rsa )
    6. 使用 ssh-keygen

      ssh-keygen -e -f ~/.ssh/id_dsa > ~/.ssh/id_dsa_com.pub
      
    7. 将RFC 4716版本的公钥转换为openssh格式:

      ssh-keygen -i -f ~/.ssh/id_dsa_com.pub > ~/.ssh/id_dsa.pub
      

    this this 更多信息。

        2
  •  142
  •   slm Vikas Hardia    7 年前

    如果您只有一个putty格式的用户的公钥,那么您可以将其转换为标准的openssh格式,如下所示:

    ssh-keygen -i -f keyfile.pub > newkeyfile.pub
    

    工具书类

    文章副本

    我一直忘了这个所以我要写在这里。不是怪人,只是 继续走。

    在windows上制作密钥的最常用方法是使用putty/puttygen。 puttygen提供了一个简洁的实用程序,可以将linux私钥转换为 油灰格式。但是,没有提到的是,当您保存 使用puttygen的公钥在linux服务器上不起作用。窗户 将一些数据放在不同的区域并添加换行符。

    解决方案:当您在创建 puttygen中的密钥对,复制公钥并将其粘贴到文本中 扩展名为.pub的文件。您将节省系统管理时间 读这样的帖子很沮丧。

    但是,sysadmins,总是会得到抛出的不可靠的密钥文件 验证日志中没有错误消息,除了,未找到密钥,正在尝试 密码;即使其他人的钥匙都工作正常, 您已将此密钥发送回用户15次。

    ssh keygen-i-f keyfile.pub>newkeyfile.pub
    

    应该将现有的puttygen公钥转换为openssh格式。

        3
  •  133
  •   Zac    10 年前

    更新版本的 PuTTYgen (我的是0.64)能够在 .ssh/authorized_keys 文件,如下图所示:

    enter image description here

        4
  •  48
  •   John Jawed    12 年前

    或者,如果要从putty格式的密钥文件中获取私钥和公钥,则可以使用 puttygen 在尼克斯系统上。对于大多数基于apt的系统 腐植酸 putty-tools 包裹。

    从putty格式的密钥文件输出私钥:

    $ puttygen keyfile.pem -O private-openssh -o avdev.pvk

    对于公钥:

    $ puttygen keyfile.pem -L

        5
  •  18
  •   Kamran    7 年前
    sudo apt-get install putty
    

    这将自动安装PuttyGen工具。

    现在要转换要与ssh命令一起使用的ppk文件,请在终端中执行以下命令

    puttygen mykey.ppk -O private-openssh -o my-openssh-key
    

    然后,您可以通过ssh连接到:

    ssh -v user@example.com -i my-openssh-key
    

    http://www.graphicmist.in/use-your-putty-ppk-file-to-ssh-remote-server-in-ubuntu/#comment-28603

        6
  •  12
  •   jfreak53    11 年前

    我最近遇到了这个问题,因为我正在从putty for linux迁移到remmina for linux。所以我有很多ppk文件 .putty 我用了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;
    

    很快就把Putty所有的文件都搞定了。如果它找到一个带有密码的密钥,它将停止并首先请求该密钥的密码,然后继续。

        7
  •  8
  •   Bradley Kreider    15 年前

    在linux下创建密钥并使用puttygen将密钥转换为putty格式可能更容易。

    PuTTY Faq: A.2.2

        8
  •  6
  •   kovacsbv    12 年前

    我想tcsgrad(几年前)想问的是如何让linux像他的windows机器那样运行。也就是说,有一个代理(pagent)保存私钥的解密副本,这样密码短语只需要放入一次。然后,ssh客户机putty可以登录到其公钥列为“authorized”的计算机,而无需密码提示。

    与之类似的是Linux, 作为ssh客户端 ,有一个代理持有一个解密的私钥,这样当tcsgrad键入“ssh host”时,ssh命令将获得他的私钥,并且在不提示输入密码的情况下执行。当然,主机必须在~/.ssh/authorized\u密钥中持有公钥。

    这个场景的Linux模拟是使用ssh代理(Pageant Analog)和ssh add(向Pageant添加私钥的模拟)完成的。

    对我有效的方法是: $ssh代理$shell 那个$shell是我让代理运行并保持运行所需要的魔术。我在网上的某个地方发现了它,它结束了我头撞墙的几个小时。

    现在我们有了pagent运行的模拟,一个没有密钥加载的代理。

    打字 $ SSH添加 它本身将(默认情况下)添加~/.ssh中默认标识文件中列出的私钥。

    可以找到一篇更详细的web文章 here