AWS EC2 密钥对怎么配置?私钥权限、替换与登录排查

从私钥保管和系统公钥关系出发,按错误类型恢复访问

讲解 AWS EC2 密钥对、公私钥关系、SSH 登录、私钥权限、丢失恢复、轮换和团队访问边界。

AWS EC2 密钥对由 AWS 保存的公钥和用户保管的私钥组成。Linux 通常用私钥完成 SSH 认证,Windows 可能用它解密管理员密码。AWS 不保存可供下载的私钥副本,丢失后不能重新下载同一把私钥。

不可逆点:AWS 只在创建密钥对时提供一次私钥下载,之后不能重新下载同一私钥。进入“EC2 → 网络和安全 → 密钥对”创建并妥善保存。私钥丢失不会删除数据,但可能失去 SSH 入口。替换前保留当前会话,先追加新公钥并验证,再删旧公钥。

AWS EC2 密钥对创建保管与登录排查流程图
私钥只在创建时交付,生产环境应建立独立保管和轮换流程。

密钥对与系统账户的关系

启动 Linux 实例时,所选公钥通常由初始化机制写入默认用户的 ~/.ssh/authorized_keys。密钥对名称存在于 EC2 控制面,不代表所有系统用户都自动获得该公钥。

首次连接前检查

  • 实例已通过状态检查并存在可达网络入口;
  • 安全组允许可信来源访问 TCP 22;
  • 用户名匹配 AMI,例如不同发行版默认用户可能不同;
  • 私钥文件完整,且本地权限足够严格;
  • 目标公网 IP、Elastic IP 或堡垒机路径正确。
chmod 600 ./production.pem
ssh -i ./production.pem ec2-user@203.0.113.10
ssh -vvv -i ./production.pem ec2-user@203.0.113.10

按错误类型排查

现象优先检查
连接超时路由、安全组、网络 ACL、公网地址
Connection refusedsshd 状态、监听端口、系统防火墙
Permission denied用户名、私钥、公钥和目录权限
Host key changed实例是否重建、IP 是否被重新分配

丢失私钥后的恢复

不要尝试从 AWS 恢复原私钥。可用路径取决于实例配置,包括 Systems Manager Session Manager、EC2 Instance Connect、已有管理员会话,或停止实例后把根卷挂载到救援实例修改 authorized_keys。动根卷前应创建快照并记录设备映射。

团队使用边界

不要多人共享一把长期私钥。优先使用 Session Manager、短期访问或每人独立公钥,并保留审计记录。删除 EC2 控制台中的密钥对,不会自动删除已写入实例的公钥。

先收紧私钥权限

确认文件是目标私钥,再执行:

chmod 600 /path/to/YOUR_KEY.pem ; ssh -i /path/to/YOUR_KEY.pem USER@PUBLIC_IP

替换路径、用户名和地址。Ubuntu 常见用户是 ubuntu,其他镜像可能不同,不要默认 root。还需安全组允许你的固定来源访问 SSH。

按错误分流

  • 超时:查公网地址、路由、安全组、ACL 和本地出口。
  • 拒绝:网络已到主机,查 sshd 和系统防火墙。
  • Permission denied:查用户名、私钥、公钥文件权限和认证日志。
  • 格式错误:确认没有把公钥或网页内容当私钥。

安全替换

  1. 在现有会话备份 authorized_keys 并追加新公钥。
  2. 修正目录和文件权限。
  3. 第二个终端用新私钥登录,验证提权。
  4. 确认团队和自动任务迁移后再删旧公钥。

丢失后的恢复与回退

优先用 Session Manager、EC2 Instance Connect 或平台救援。都不可用时,可停止实例,把根卷挂到救援实例修复公钥;操作前快照并记录设备,避免误挂载。新入口验证前不关旧会话。失败时恢复公钥备份或旧根卷,绝不开放全网 SSH。

团队访问不要共享一把私钥

共享私钥无法可靠判断是谁登录,也很难在成员离开时只撤销一人。团队环境优先 Session Manager、集中身份或每人独立公钥,并把登录事件送入审计。私钥不要放进聊天、代码仓库、镜像或普通网盘;发现泄露应新增密钥、验证新入口并删除受影响公钥,而不是只改文件名。

安全组只开放真实来源

临时排障也不要把 SSH 长期开放给全网。来源 IP 变化时使用受控 VPN、堡垒或会话管理,避免不断扩大网段。连接问题先按网络、服务、认证三层判断,不能用开放所有端口来证明私钥正确。

轮换完成后检查自动部署、备份拉取和监控脚本是否仍引用旧私钥。把旧公钥删除时间、影响实例和验证人写入记录;只在一台服务器删除会留下其他入口。若使用加密私钥,口令和文件应分开保护,恢复演练要证明授权人员能在需要时取得。

完成当前任务后继续检查

官方资料

AWS 教程AWS CloudShell 显示账户验证中怎么办?已验证仍无法创建环境的排查2026-09-15AWS 教程AWS EBS 卷卡在 attaching 怎么排查?可用区、挂载限制与设备识别2026-09-01AWS 教程AWS CloudTrail 怎么查操作记录?Event history、Trail 与审计边界2026-08-28

加入开发者交流社区

与全球开发者、运维和工作室一起交流技术、分享经验、配置、账号与最新优惠信息

  • 云平台使用交流
  • 资源优惠信息
  • 最新教程与资讯
  • 开发者经验分享
联系 Telegram 客服
加入开发者交流社区