将PEM转换为PPK文件格式


125

有没有一种方法可以将PEM文件转换为PPK文件?(您可能会猜想Amazon EC2给了我一个PEM文件,并且我需要使用PPK格式进行SSH连接)。


1
从来没有听说过ppk格式,但是我怀疑.NET中是否有任何功能。
总统詹姆斯·波尔克(James K. Polk)2010年

6
PPK是Putty客户端格式。我认为.NET与它无关。
Borealid

2
好的,我没有意识到……PPK只是一种专有/怪异的格式,仅存在于Putty-land?
LoneRanger

1
这也是FileZilla唯一接受的格式。
莱德(Ryder)2014年

以及AmazonWebServices发出密钥的默认格式。
2015年

Answers:


229

使用PuTTYGen

创建和使用SSH密钥

总览

vCloud Express现在可以为Linux服务器创建SSH密钥。此功能将允许用户通过选择“我的帐户/密钥管理”选项来创建多个自定义密钥。创建密钥后,将要求用户在Linux的“创建服务器”过程中选择所需的SSH密钥。

创建和使用SSH密钥

  1. 创建密钥
    • 导航到“我的帐户”
    • 选择“密钥管理”
    • 创建新密钥。
      • 在密钥创建过程中,系统将提示您下载.PEM格式的私钥文件。您将无法再次下载私钥,因为它没有存储在vCloud Express中。
      • API使用“默认”复选框。
  2. 部署服务器并选择密钥
  3. 连接

    • SSH(Mac / Linux)
      • 将.PEM文件复制到要连接的计算机上。
      • 确保对.PEM文件的权限适当(chmod 600 file.pem)
      • 使用ssh命令连接:ssh vcloud @ ipaddress –i privkey.pem
    • 油灰(Windows)
      • 此处下载Putty和puttygen
      • 使用puttygen将.PEM文件转换为.PPK文件。
      • 启动puttygen并选择“加载”
      • 选择您的.PEM文件。
      • Putty会将.PEM格式转换为.PPK格式。 在此处输入图片说明
      • 选择“保存私钥”,不需要密码,但如果需要更高的安全性,则可以使用该密码。
    • 与腻子连接。

      • 启动Putty并输入主机IP地址。如果连接到10.X专用地址,则必须首先建立SSL VPN连接。
      • 导航到连接/ SSH /身份验证
      • 单击“浏览”,然后选择从puttygen导出的.PPK文件。 在此处输入图片说明

      • 点击“打开”。建立连接后,输入用户名(默认为vcloud)。

这里复制的说明


谢谢,我做到了,它奏效了!LoneRanger,我想您可以将其标记为正确答案:-)
Kevin P. 2010年

65

我很震惊,因为解决方案非常简单,所以还没有解决。

如前几篇文章所述,您不想使用C#进行转换,而只需一次。使用PuTTYGen可以轻松做到这一点。

  1. 从AWS下载您的.pem
  2. 打开PuTTYGEN
  3. 单击右侧的“加载”大约3/4向下
  4. 将文件类型设置为*。*
  5. 浏览并打开.pem文件
  6. PuTTY将自动检测所需的一切,您只需单击“保存私钥”,即可保存您的ppk密钥以用于PuTTY

请享用!


2
对于该解决方案不起作用的人,请从chiark.greenend.org.uk/~sgtatham/putty/download.html更新您的 腻子。我的那是2005年,无法打开PEM
Mistika 2013年

31
当您寻找如何做很长时间没有的事情时,这真的很有趣,并且您找到了2.5年前给出的stackoverflow答案。
trex005 2014年

2
@ trex005好吧,stackoverflow现在似乎是我们内存的扩展,我们不需要记住所有事情。
Paramvir Singh Karwal

@ParamvirSinghKarwal,您说得很对……我可能每年或每两年使用此帖子作为我的记忆,但是我不再评论了,因为它会很烦人!
trex005

16
  1. 下载puttygen
  2. 然后打开腻子
  3. 点击加载
  4. 将文件类型设置为所有的文件
  5. 保存私钥
  6. 然后您可以保存文件名称成为ppk文件的任何名称

5

要通过SSH连接到AWS EC2实例,即使在Windows计算机上,也无需使用'git bash'工具将.PEM文件转换为PPK文件。无需下载和转换这些软件-希望这可以节省您下载和转换密钥的时间,并让您有更多时间处理EC2。


1
或者,在Windows 10中,“在Windows上的ubuntu上重击”
Andrew lorien

您需要使用ppk才能使用腻子进行ssh
sudip

答案是正确的,但没有解决标题中的问题
Oliver Dungey

5

如果您拥有Linux机器,只需在系统中安装puttygen并使用use below命令转换密钥

使用以下命令将pem转换为ppk:

puttygen keyname -o keyname.ppk

下面的命令用于将ppk转换为pem而不是pem转换为ppk

puttygen filename.ppk -O private-openssh -o filename.pem


而且您可以在大多数Linux发行版上安装腻子-这里有一个不错的列表:command-not-found.com/puttygen
Oliver Dungey

以下是什么错误,建议将pem转换为ppk puttygen键名-o keyname.ppk
Deepak Sharma

您已编辑并提及了用于将ppk转换为pem的命令
Deepak Sharma

3
  1. 将YourPEMFILE.pem保存到.ssh目录
  2. 从命令提示符运行puttygen

    一个。单击“加载”按钮以“加载现有私钥文件”
    。将文件过滤器更改为“所有文件()”
    。选择YourPEMFILE.pem
    d。单击打开
    e。Puttygen显示一条通知,指出已成功导入外键。单击确定。
    F。单击“保存私钥”按钮
    g。当询问您是否确定要保存而不输入密码时,请回答“是”。
    H。输入文件名YourPEMFILE.ppk
    。点击“保存”


2

对于Windows 10将.pem文件转换为.ppk

您需要执行以下操作:


1.Pageant下载PuTTYGen2.“加载”按钮,然后选择“ .pem”文件。3.“保存私钥”按钮,然后保存“ .ppk”文件。4.打开选美并按“添加键”按钮。就是全部 继续在后台运行Pageant5.现在无需选择密码字段即可通过SSHSFTP登录。




在此处输入图片说明


在此处输入图片说明


在此处输入图片说明


1

适用于Ubuntu / Linux和PEM到PPK的PuTTYgen

sudo apt install putty-tools
puttygen -t rsa -b 2048 -C "user@host" -o keyfile.ppk

0

我使用了ZOC Terminal Emulator的试用版,并且可以正常工作。它很容易接受亚马逊的* .pem文件。

但是,诀窍在于,尽管EC2控制台中显示了示例,但您仍需要为用户名指定“ ec2-user”而不是“ root”-这是错误的!;-)


0

我与PuttyGen遇到了相同的问题,不想导入openSSH私钥。我尝试了所有操作,发现是PuttyGen的旧版本不支持导入OpenSSH。一旦我下载了最新的Putty,puttygen就允许它导入openssh私钥。我现在在办公桌的侧面有一个孔,可在过去一个小时中用头撞着它。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.