为 Amazon 的 EC2 实例生成 pem 文件

问题描述 投票:0回答:2

对于我们的生产系统,我们运行 Amazon EC2 实例。 对此负责的同事(称他为乔)已离开公司。

现在我们想要

ssh
访问我们的实例。

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

id_dsa
id_dsa.pub

在后端我们可以看到,密钥“joe”被分配给正在运行的实例,并且 ssh 访问是通过以下命令完成的:

ssh -i "joe.pem" [email protected]

我们如何生成

.pem
文件?或者更一般地说,需要做什么才能获得 ssh 访问权限?

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

amazon-web-services ssh amazon-s3 amazon-ec2
2个回答
22
投票

用于创建新的 Pem 密钥:

前往

EC2 Dashboard
>
Key Pair
>
Create Key Pair

这将为您下载

.pem key
文件。

对于 SSH 访问:

  1. 使用以下方式提取公钥:

    chmod 400 /path_to_key/key.pem
    ssh-keygen -y -f /path_to_key/key.pem
    
  2. 将此添加到实例上

    .ssh/authorized_keys
    文件中的现有公钥下。

  3. 您可以使用新的 pem 密钥通过

    ssh -i "file.pem" ubuntu@ip

    连接到实例

11
投票

访问新实例

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

实例启动时,会指定一个密钥对。然后,EC2 服务会将密钥对的公共部分复制到

/home/ec2-user.ssh/authorized_keys
(路径可能会根据所选 AMI 的不同而有所不同)。

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

ssh -i joe.pem [email protected]

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

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

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

访问现有实例

对于您的特定情况,实例已经启动,并且授予访问权限的

ssh
密钥对可能(也可能不是!)是实例首次启动时使用的密钥对。

您还提到您可以看到它们的键

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

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

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

最重要的是,如果没有密钥对,您就无法

ssh
进入实例。

恢复访问权限

最坏的情况,如果你不能

ssh
到实例,你仍然可以修复问题。一般步骤是:

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

您现在应该能够

ssh
进入实例。

一些参考:

© www.soinside.com 2019 - 2024. All rights reserved.