AWS EC2:从cert-***.pem生成用于SSH终端访问的私钥文件

AWS EC2:从cert-***.pem生成用于SSH终端访问的私钥文件,ssh,amazon-ec2,amazon-web-services,Ssh,Amazon Ec2,Amazon Web Services,我有我的访问密钥、密钥和下载的cert pem文件 我知道SSH需要一个私钥文件来建立到我的实例的终端SSH连接 我通过谷歌发现,我需要使用puttygen将我的cert pem文件转换为私钥文件: 然而,我找到的所有指令都基于GUI puttygetn,我只有CL版本,因为我在笔记本电脑上运行Linux Fedora 16。我做了百胜PuTTy,它带有GUI,但puttygen只有CL版本。我在puttygen尝试做的如下: >puttygen cert-***.pem -o defa

我有我的访问密钥、密钥和下载的cert pem文件

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

我通过谷歌发现,我需要使用puttygen将我的cert pem文件转换为私钥文件:

然而,我找到的所有指令都基于GUI puttygetn,我只有CL版本,因为我在笔记本电脑上运行Linux Fedora 16。我做了百胜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可用于连接到我的实例的私钥文件吗


提前感谢

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

您无法转换或使用ssh的X.509证书或私钥

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

如果您知道如何在本地生成自己的ssh密钥(或者已经这样做了),那么我建议您这样做


当您运行EC2实例时,然后指定ssh密钥对名称,以便EC2使ssh公钥可用于实例,使您可以安全地通过ssh连接到新服务器。

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

因此,如果您将.pem文件从Amazon保存为
/path/to/aws.pem
,则只需

ssh -i /path/to/aws.pem user@hostname.com

谢谢我这样做了,并将pem.pub文件上传到AWS控制台。但是,当我尝试连接pem文件时,它会询问我根密码。这可能是特定AMI的一个问题,即它被配置为需要根passwd:>ssh-i aws\u foampile\u default.pem吗root@ec2-.compute-1.amazonaws.com>root@ec2-.compute-1.amazonaws.com的密码:您确定AMI使用“root”作为登录用户吗?它可能是“ec2用户”或“ubuntu”,具体取决于AMI。