将Amazon .pem密钥转换为Putty .ppk密钥Linux


49

我已经.pem从AWS 生成并下载了私钥。但是,要使用Putty连接到虚拟机,我必须具有该.ppk格式的密钥。转换过程大约在20行中进行了详细说明:

我正在使用Linux Mint(Ubuntu发行版),并且我知道可以在终端中使用puttygen。但是,我不知道如何使用该工具,也不知道如何配置所需的参数。当我输入puttygen --help时

PuTTYgen unidentified build, Aug  7 2013 12:24:58
Usage: puttygen ( keyfile | -t type [ -b bits ] )
                [ -C comment ] [ -P ] [ -q ]
                [ -o output-keyfile ] [ -O type | -l | -L | -p ]
  -t    specify key type when generating (rsa, dsa, rsa1)
  -b    specify number of bits when generating key
  -C    change or specify key comment
  -P    change key passphrase
  -q    quiet: do not display progress bar
  -O    specify output type:
           private             output PuTTY private key format
           private-openssh     export OpenSSH private key
           private-sshcom      export ssh.com private key
           public              standard / ssh.com public key
           public-openssh      OpenSSH public key
           fingerprint         output the key fingerprint
  -o    specify output file
  -l    equivalent to `-O fingerprint'
  -L    equivalent to `-O public-openssh'
  -p    equivalent to `-O public'

但是我对网站告诉我的操作一无所知,到目前为止,我的所有尝试都失败了。

在终端上使用Puttygen,我该如何执行网站告诉我的操作?


Answers:


70

使用GUI

有关如何准确执行所需操作的信息,请参见此SO Q&A,标题为:将PEM转换为PPK文件格式

摘抄

  1. 从AWS下载您的.pem
  2. 打开PuTTYgen,选择要生成的密钥类型:SSH-2 RSA
  3. 单击右侧的“加载”大约3/4向下
  4. 将文件类型设置为 *.*
  5. 浏览并打开.pem文件
  6. PuTTY将自动检测其所需的所有内容,您只需单击“保存私钥”,即可保存您的ppk密钥以用于PuTTY

使用命令行

另一方面,如果您想通过命令行工具将a转换.pem.ppk文件puttygen,那么我在题为“ Q&A”的SO中遇到了这种解决方案:

摘抄

$ puttygen keyfile.pem -O private -o avdev.ppk

对于公共密钥:

$ puttygen keyfile.pem -L

参考文献


步骤2至6也适用于其他私钥文件类型(例如,来自Git Bash ssh-keygen命令的结果文件),谢谢!
AtAFork

从命令行不再起作用
Aryeh Beitz

没有关于如何在OSX上运行的任何想法,PuTTYgen不可用
Qasim

如果要向私钥添加密码/密码,只需添加-P。例如puttygen k.pem -PO private -o k.ppk
CPHPython

15

如果您使用的是GNU / Linux,则不必使用Putty。本教程的该部分适用于Windows用户。

只需将您的.pem文件权限设置为r--chmod 400 mykey.pem然后就可以将其直接传递给ssh:

ssh -i mykey.pem user@aws-host.amazon.com 

我尝试使用腻子的原因是,我可以按照本plex教程中的说明进行操作。如果还有其他方法,请随时说明。
Flame_Phoenix 2014年

您的Plex Media服务器在AWS机器上,并且您正尝试从Mint工作站通过隧道连接到它,我是否正确?您应该打开另一个问题对此进行解释,但是已经有很多问题解释了如何进行SSH隧道传输。
弗朗索瓦Feugeas

1
通过使用您提到的命令,我可以登录到远程AWS实例。我实际上想传输使用命令的文件(以防万一它可以帮助某人)sftp -oIdentityFile=mykey.pem user@<publicIP>... thanx您的帖子帮助我解决了超过5个小时的问题。
Subham Tripathi 2015年

0

使用以下命令在ubuntu中对我有用

puttygen /home/abc/Downloads/dockerkey1.pem -o home/abc/Downloads/dockerkey1.ppk -O private

puttygen pemKey.pem -o ppkKey.ppk -O private


已经在接受的答案中对此进行了描述。sudo如果您当前的用户在输出目录中具有写许可权,则无需使用它。
Stephen Kitt

感谢您的建议@Stephen kitt
thrinadhn
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.