EC2 密钥对
发布: (2025年12月19日 GMT+8 13:46)
2 min read
原文: Dev.to
Source: Dev.to
EC2 密钥对
- 公钥 – 由 AWS 存储并放置在 EC2 实例上(位于
~/.ssh/authorized_keys中)。 - 私钥 – 下载到本地机器;AWS 永不存储,下载后无法再恢复。
EC2 密钥对的工作原理
- 启动实例时,你可以选择已有的密钥对,或让 AWS 创建一个新的密钥对。
- 创建后,你下载私钥;随后 AWS 会从其侧删除该私钥。
- 公钥会存储在实例的
~/.ssh/authorized_keys文件中。 - SSH 连接使用私钥而不是密码。
注意: 从 EC2 控制台删除密钥对 不会 删除实例根卷中对应的公钥。如果实例是从已经包含密钥的预构建 AMI 启动的,旧的公钥和新的公钥都会存在,允许使用任意对应的私钥进行 SSH 登录。
Instance Connect
- 用户通过 EC2 Instance Connect API 发起连接。
- Instance Connect 生成临时密钥对。
- 临时公钥通过实例元数据发送到实例,仅在 60 秒内有效。
- EC2 Instance Connect 使用临时私钥(在 AWS IP 地址范围内)SSH 登录实例。
- 会话记录在 CloudTrail 中。
私钥丢失时的访问恢复
- 在 EC2 控制台 创建一个新密钥对。
- 停止 受影响的 EC2 实例。
- 分离 其根 EBS 卷。
- 将该卷 附加 到临时 EC2 实例作为次要卷。
- 挂载卷(如果未自动挂载),编辑
~/.ssh/authorized_keys,添加新的公钥。 - 分离 临时实例上的卷,并 重新附加 回原实例。
- 启动 原实例;此时即可使用新创建的私钥进行 SSH 登录。