亚马逊AWS EC2 - 获取.cer文件而不是.pem

36
当我从"Security Credentials"下载私钥文件时,我得到了一个.cer文件而不是一个.pem文件。我尝试使用该文件ssh到我的ec2实例,但一直出现以下错误信息:
"Bad passphrase, try again for pk-xxxxxxxxxxx"
这是因为我有一个.cer文件还是因为我需要一个密码短语?我不知道什么是密码短语。如果能尽快得到帮助,我将不胜感激。我认为我正在混淆从X.509获取的.cer文件和我需要用于ssh的文件。但问题在于我从未获得过.pem文件,只有.cer文件。

你使用什么工具来SSH连接到实例?如果你使用的是Putty,你需要使用类似puttygen的工具将其转换为PPK格式。 - Rakesh Bollampally
我正在使用Mac OS X,因此使用命令行SSH。我需要将我的.cer转换为.pem吗? - ueg1990
如果您使用的是OSX终端,cer文件应该可以正常工作。我认为您不需要将文件转换为pem格式,只需尝试重命名文件即可。此外,请确保文件权限正确。chmod 400 file.pem - Rakesh Bollampally
6个回答

48

我刚开始在亚马逊AWS平台上工作,遇到了这个问题。

不确定您是否成功解决了问题 - 但是,这里有一个AWS论坛帖子,讨论了相关问题及其解决方法:

ssh错误:“输入密钥'id_rsa-gsg-keypair'的密码”

总结一下帖子 - 问题似乎出在下载的.cer文件的权限上。

关于.cer文件的另一件事 - .cer文件基本上符合PEM格式,因此使用.cer文件就像使用.PEM文件一样不应该有问题。

我下载了我的.cer文件,并在具有正确权限(chmod 400 mykey.cer)之后,将其用于以下ssh命令连接到我的Amazon Linux实例中:

ssh -i mykey.cer ec2-user@public-dns-of-my-amazon-instance

可能连接用户对于其他Linux实例有所不同。更多信息在此处


1
更好的做法是将所有内容添加到SSH配置文件中:http://www.cyberciti.biz/faq/create-ssh-config-file-on-linux-unix/ - Raydot
知道这两个扩展名是兼容的很好,但当AWS说我们必须下载“.pem”文件却给了我们“.cer”文件时,这并没有帮助。 :-| - ankush981
小提示:默认情况下,截至2023年要使用的用户确实被称为ec2-user,这是我最初没有意识到的事情。 - MartinT

14

尝试在不同的浏览器中下载文件。当我使用Brave浏览器下载ec2实例时,类似的问题也困扰了我,但是在使用Safari时没有遇到任何问题。

chmod 400 mykey.pem

ssh -i mykey.pem bitnami@x.x.x.x


5

我之前也遇到过这个问题。在EC2实例上的“Connect”功能中显示文件是.pem格式,但下载实际上是.cer格式。

我运行了chmod 400 FILENNAME.cer,但仍无法登录。然后我检查了ssh链接,发现它也是.pem格式。我把.pem改成了.cer,这样就行了!


将“.cer”扩展名重命名为“.pem”,它就可以正常工作了。 - Felix Htoo
@pirateofebay,SSH链接在哪里?我是初学者,试图找到.pem文件,但只有.cer文件。 - Ayesha

3
只需要将文件从.cert重命名为.pem即可。

目前你的回答不够清晰,请编辑并添加更多细节,以帮助其他人理解它如何回答问题。你可以在帮助中心找到有关如何编写好答案的更多信息。 - Community

2

与其他人的回复类似,这只是亚马逊文档的奇怪之处。

他们提供了 .cer 文件的下载,但他们“有用”的连接文档/帮助参考是 .pem 格式。

  1. 导航到你下载 .cer 文件的位置(例如:cd Desktop
  2. chmod 400 name_of_cer_file_here.cer
  3. ssh -i "name_of_cer_file_here.cer" your_user_here@ec2-123-456.region.compute.amazonaws.com

1

我曾经遇到相同的问题,它给了我一个“无此文件或目录”的错误信息,因为我的Ec2 ssh密钥在我的目录中出现了一个.cer扩展名而不是一个.pem

  1. 我将扩展名更改为.pem
  2. 在我的终端iTerm中,重新运行chmod命令以使密钥私有。
  3. 在终端中运行ls -al key-name,并省略扩展名以确认其存在于目录中。
  4. 然后重新运行整个ssh ..... 命令

它起作用了!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接