You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS实例PEM/PPK文件管理:已暴露PEM文件的失效及新文件创建方法

如何失效暴露的AWS EC2实例PEM密钥对并创建新密钥对

别慌,我来一步步教你怎么处理这个问题——既要废掉暴露的旧PEM,又要给现有实例配上新的密钥对:

一、先让旧PEM彻底失效(无法登录实例)

1. 移除实例上的旧公钥

首先你得能登录到EC2实例(用旧的PEM文件,只要现在还能连得上):

  • 登录后,打开~/.ssh/authorized_keys文件(不同系统用户名对应路径有差异:Ubuntu是ubuntu用户的~/.ssh/authorized_keys,Amazon Linux是ec2-user用户的对应路径,root用户则是/root/.ssh/authorized_keys)
  • 找到旧密钥对对应的公钥行,删掉它并保存退出。这一步做完,旧PEM就再也没法登录这个实例了。

2. 在AWS控制台删除旧密钥对

旧公钥已经从实例移除后,就可以在控制台删掉对应的密钥对了:

  • 打开EC2控制台,左侧导航栏找到「密钥对」
  • 选中那个暴露的密钥对,点击顶部的「操作」→「删除」,确认删除即可。

二、给现有实例创建并关联新的PEM密钥对

AWS没法直接给运行中的实例“替换”密钥对,我们需要手动把新密钥对的公钥添加到实例里:

1. 创建新的密钥对

  • 还是在EC2控制台的「密钥对」页面,点击「创建密钥对」
  • 输入一个好记的名称(比如new-production-secure-key),密钥对类型选「RSA」,格式选.pem,然后点击「创建」
  • 浏览器会自动下载新的PEM文件,一定要把它存在安全的地方,而且本地要设置正确的权限(SSH要求密钥文件权限不能太开放):
    chmod 600 /path/to/new-key.pem
    

2. 获取新密钥对的公钥内容

有两种方式拿到公钥:

  • 方式一:在EC2控制台的密钥对列表里,点击新密钥对的名称,复制「公钥」字段里的完整内容
  • 方式二:在本地用命令导出公钥:
    ssh-keygen -y -f /path/to/new-key.pem
    
    复制命令输出的整个字符串即可。

3. 把新公钥添加到EC2实例

如果你还能通过旧PEM登录实例,直接登录后编辑~/.ssh/authorized_keys,把刚才复制的新公钥粘贴到文件末尾,保存退出即可。

如果旧PEM已经没法登录了(比如你已经删掉了实例上的旧公钥),可以用AWS Systems Manager Session Manager来连接实例(前提是实例已经配置了SSM权限并能联网到SSM服务):

  • 打开EC2控制台,找到目标实例,右键点击「连接」→选择「Session Manager」→「连接」
  • 进入会话后,同样编辑~/.ssh/authorized_keys添加新公钥。

4. 验证新PEM的可用性

用新PEM尝试登录实例,确保能成功:

ssh -i /path/to/new-key.pem ec2-user@<你的实例公网IP/域名>

(记得替换成你实例的实际用户名和公网IP/域名)

额外注意事项

  • 如果有多个EC2实例使用了那个暴露的密钥对,要逐个重复上面的步骤,确保所有实例都移除旧公钥并添加新公钥
  • 新PEM文件一定要妥善保管,别再让无关人员接触到
  • 如果实例没有配置SSM,且旧PEM已经失效,那你可能需要停止实例,挂载根卷到另一个实例上修改authorized_keys,这个操作相对复杂,要是遇到这种情况可以再问细节。

内容的提问来源于stack exchange,提问作者Sagar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:37:50