访问新实例
Key Pairs 用于授予使用Amazon提供的标准Amazon Machine Image(AMI)启动的新Amazon EC2实例的访问权限。(来自其他位置的AMI可能有其自己的登录方法。)
当实例启动时,会指定一个密钥对。然后,EC2服务将复制密钥对的公共部分到/home/ec2-user.ssh/authorized_keys
(路径可能因所选的AMI而异)。
然后,要连接到实例,请使用密钥对的私有部分,就像您所展示的那样:
ssh -i joe.pem ec2-user@11.22.11.123
Amazon Linux实例使用ec2-user
登录。Ubuntu使用ubuntu
作为用户名。
要使用的密钥对名称显示在管理控制台中EC2实例的信息部分中:
![Key pair in console](https://istack.dev59.com/EKs4Y.webp)
一旦访问了实例,建议更改使用的密钥对、创建新用户并通常接管实例的安全性。遵循您组织的标准安全实践,而不是依赖于启动实例时使用的密钥对。
访问现有实例
对于您的特定情况,实例已经启动,并且授予访问权限的ssh
密钥对可能(也可能不是!)是第一次启动实例时使用的密钥对。
您还提到了可以看到键joe
与该实例相关联。 在这种情况下,您应该尝试找到joe.pem
并登录到该实例。 如果找不到该文件,请尝试使用id_dsa
文件。
如果所有这些都不起作用,则问题是以下两种情况之一:
- 您没有使用启动实例时使用的密钥对,或者
- 实例本身的密钥对已更改(根据安全建议)
底线是,如果没有密钥对,则无法ssh
到该实例。
恢复访问权限
最糟糕的情况是,如果您无法ssh
到该实例,仍然可以解决问题。 一般步骤如下:
- 停止实例(我们称其为Instance A)
- 卸载引导卷(我们称其为Volume A)
- 启动新实例或选择现有实例(我们称其为Instance B)
- 将Volume A附加到Instance B上
- 登录到Instance B并将新公共密钥对复制到Volume A上的
.ssh/authorized_keys
文件中
- 卸载和分离Instance B中的Volume A
- 将Volume A附加到Instance A上
- 启动Instance A
现在您应该能够ssh
到该实例。
一些参考资料: