对于我们的生产系统,我们运行 Amazon EC2 实例。 对此负责的同事(称他为乔)已离开公司。
现在我们想要
ssh
访问我们的实例。
他给我们留下了他的私人和公钥文件。
id_dsa
id_dsa.pub
在后端我们可以看到,密钥“joe”被分配给正在运行的实例,并且 ssh 访问是通过以下命令完成的:
ssh -i "joe.pem" [email protected]
我们如何生成
.pem
文件?或者更一般地说,需要做什么才能获得 ssh 访问权限?
我们需要亚马逊的证书吗?如果是的话,怎么办?
用于创建新的 Pem 密钥:
前往
EC2 Dashboard
>
Key Pair
>
Create Key Pair
这将为您下载
.pem key
文件。
对于 SSH 访问:
使用以下方式提取公钥:
chmod 400 /path_to_key/key.pem
ssh-keygen -y -f /path_to_key/key.pem
将此添加到实例上
.ssh/authorized_keys
文件中的现有公钥下。
您可以使用新的 pem 密钥通过
ssh -i "file.pem" ubuntu@ip
连接到实例
访问新实例
密钥对用于在使用 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
到实例,你仍然可以修复问题。一般步骤是:
.ssh/authorized_keys
文件您现在应该能够
ssh
进入实例。
一些参考: