在亚马逊生成EC2实例的pem文件

时间:2015-10-02 12:11:02

标签: amazon-web-services ssh amazon-s3 amazon-ec2

对于我们的生产系统,我们正在运行Amazon EC2实例。 这位负责的同事(比如称他为Joe)离开了公司。

现在我们希望ssh访问我们的实例。

他给我们留下了他的私钥和公钥文件。

id_dsa
id_dsa.pub

在后端我们可以看到,键“joe”被分配给runnning实例,ssh访问由以下命令完成:

ssh -i "joe.pem" ec2-user@11.22.11.123

我们如何生成.pem文件?或者更一般地说,为了获得ssh访问需要做些什么?

我们需要亚马逊的证书吗?如果是这样,怎么样?

3 个答案:

答案 0 :(得分:9)

用于创建New Pem键:

转到EC2 Dashboard > Key Pair> Create Key Pair

这将为您下载pem key文件。

对于SSH访问:

  1. 您可以将id_rsa.pub添加到实例~/.ssh/auth*文件中。之后,您可以使用ssh ubuntu@ip
  2. ssh到它
  3. 您可以使用ssh -i "file.pem" ubuntu@ip
  4. 使用与该实例关联的pem键

答案 1 :(得分:8)

访问新实例

密钥对用于在使用亚马逊提供的标准亚马逊机器映像(AMI)时授予对新启动的Amazon EC2实例的访问权限。 (来自其他地方的AMI可能有自己的登录方法。)

启动实例时,会指定密钥对。然后,EC2服务将密钥对的公共一半复制到/home/ec2-user.ssh/authorized_keys(路径可能因AMI选择而异)。

然后,要连接到实例,请使用密钥对的私有部分,就像您显示的那样:

ssh -i joe.pem ec2-user@11.22.11.123

ec2-user登录用于Amazon Linux实例.Ubuntu使用ubuntu作为用户名。)

要使用的密钥对的名称显示在管理控制台中EC2实例的信息部分中:

Key pair in console

访问实例后,建议更改正在使用的密钥对,创建新用户并通常获取实例安全性的所有权。遵循组织的标准安全实践,而不是依赖实例启动时使用的密钥对。

访问现有实例

对于您的特定情况,实例已经启动,授予访问权限的ssh密钥对可能(或可能不是!)是首次启动实例时使用的密钥对。

您还提到您可以看到密钥joe与实例关联。在这种情况下,您应该尝试查找joe.pem并登录该实例。如果找不到该文件,请尝试使用id_dsa文件。

如果这一切都不起作用,那么问题就是两件事之一:

  • 您没有启动实例时使用的密钥对,或
  • 实例本身的密钥对已更改(根据安全建议)

最重要的是,如果没有密钥对,则无法ssh进入实例。

恢复访问权限

最糟糕的情况是,如果你不能ssh到实例,你仍然可以解决问题。一般步骤是:

  • 停止实例(让我们称之为实例A)
  • 分离启动卷(我们称之为卷A)
  • 启动新实例,或选择现有实例(让我们称之为实例B)
  • 附加卷A到实例B
  • 登录到实例B并复制新的公钥对到A卷上的.ssh/authorized_keys文件
  • 卸载分离来自实例B的卷A
  • 附加卷A到实例A
  • 开始实例A

您现在应该可以ssh进入实例。

一些参考文献:

答案 2 :(得分:0)

您还可以使用UserifySSH UKM等专用工具来更新密钥 - 只需在生成密钥后粘贴新公钥,使用Windows上的Putty或已内置于Linux中的工具或OSX。 (免责声明:我为Userify工作)。