2012-09-13 78 views
5

我有我的访问密钥,密钥和下载的cert pem文件。AWS EC2:生成私钥文件脱离证书 - ***。pem用于SSH终端访问

我知道SSH需要一个私钥文件才能建立到我的实例的终端SSH连接。

什么我发现通过谷歌的是,我需要使用的puttygen我的证书PEM文件转换成一个私钥文件:

http://www.techrepublic.com/blog/datacenter/connect-to-amazon-ec2-with-a-private-key-using-putty-and-pageant/5085

然而,所有我找到的指令是基于GUI puttygetn和我只有CL版本,因为我在我的笔记本电脑上运行Linux Fedora 16。我做了yum PuTTy,它带有一个GUI,但puttygen只有一个CL版本。我试图在的puttygen做如下:

>puttygen cert-***.pem -o default.pem 

puttygen: error loading `cert-***.pem': file does not begin with OpenSSH key header 

任何人可以点什么,我做错了,我怎么可以使用CL的puttygen到我的证书文件转换成可用通过SSH连接私钥文件我的例子?

在此先感谢

回答

4

ssh私钥与X.509证书和私钥完全不同。这有点令人困惑,因为人们经常将EC2生成的ssh私钥保存在“.pem”文件中,就像cert和pk的使用一样。

您不能像试图那样转换或使用ssh的X.509证书或私钥。

您可以通过AWS console上的Amazon EC2或通过AWS命令行工具(ec2-add-keypair)生成ssh私钥(有时称为“密钥对”)。如果您使用的是Putty,那么您可能仍然需要转换为PPK格式,如您所引用的文章所述,但您正在转换ssh密钥.pem文件,而不是X.509私钥或证书。

如果您知道如何在本地生成您自己的ssh密钥(或已经这样做),那么我建议您执行此操作并uploading the ssh public key to EC2

当您运行EC2实例时,您随后指定ssh密钥对名称,以便EC2使ssh公钥可供该实例使用,从而让您安全地ssh进入新的服务器。

+0

感谢。我做到了,并将pem.pub文件上传到AWS控制台。然而,当我然后尝试连接pem文件时,它会要求我输入根密码。这可能是特定AMI的问题,即它被配置为需要根密码: > ssh -i aws_foampile_default.pem [email protected]***.compute-1.amazonaws.com > root @ ec2 - ***。compute-1.amazonaws.com的密码: – amphibient

+1

您确定AMI使用“root”作为登录用户吗?根据AMI,它可能是“ec2-user”或“ubuntu”。 –

+0

是的,EC2用户工作。谢谢 – amphibient

9

如果您在命令行运行Linux,为什么需要用puttygen生成ppk?基本上你从AWS获得的密钥对是pem格式,适合在ssh命令行中使用。

所以,如果你从亚马逊保存您的.pem文件/path/to/aws.pem,所有你需要做的是

ssh -i /path/to/aws.pem [email protected].com