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

如何找回AWS中丢失的PPK文件?

如何找回AWS中丢失的PPK文件?

哎,碰到这种情况确实挺闹心的!首先得给你说清楚:丢失的PPK文件是没法直接找回的——因为AWS在你创建密钥对的时候,只会让你下载一次私钥,之后不会再保存任何副本。不过别慌,咱们可以通过替换实例的密钥对来重新获得SSH访问权限,下面给你两种实用的方法:

方法一:通过EC2控制台替换密钥对(适合能停止实例的场景)

如果你的网站可以短暂停机,这个方法比较稳妥:

  • 第一步:先停止目标EC2实例(生产环境的话,记得提前确认停机影响,做好相关通知)
  • 第二步:分离实例的根卷:在EC2控制台找到该实例,进入「存储」标签,找到根卷(通常是/dev/sda1或/dev/xvda),点击「分离卷」按提示操作
  • 第三步:创建一个临时EC2实例,用你现有的可用密钥对(或者直接新建一个密钥对,一定要下载好对应的.pem文件)
  • 第四步:把刚才分离的根卷挂载到临时实例:找到分离的卷,点击「附加卷」,选择临时实例,挂载点设为/dev/sdf这类未被占用的路径
  • 第五步:登录临时实例,修改挂载卷的密钥配置:
    • 先挂载卷:sudo mkdir /mnt/tempvol && sudo mount /dev/xvdf1 /mnt/tempvol(挂载路径要和你刚才设的对应,可能需要调整)
    • 复制临时实例的公钥:cat /home/ec2-user/.ssh/authorized_keys(如果是Ubuntu系统,路径是/home/ubuntu/.ssh/authorized_keys)
    • 编辑挂载卷里的authorized_keys:sudo nano /mnt/tempvol/home/ec2-user/.ssh/authorized_keys,把原来的内容替换成刚才复制的公钥,保存退出
  • 第六步:卸载并分离卷:sudo umount /mnt/tempvol,然后在控制台分离这个卷
  • 第七步:把根卷重新挂载回原EC2实例,启动实例,现在你就能用临时实例对应的PPK文件登录原实例了(如果是新建的密钥对,记得用Puttygen把.pem转换成PPK格式)

方法二:用EC2 Systems Manager(适合不能停止实例的场景)

如果你的实例没法停机,且之前已经配置了SSM代理,这个方法更方便:

  • 第一步:确认实例已安装SSM代理(Amazon Linux 2和Amazon Linux AMI默认自带,其他系统可能需要提前安装,没装的话这个方法用不了)
  • 第二步:进入AWS控制台的「EC2 Systems Manager」,选择「会话管理器」,点击「启动会话」,选中你的实例启动会话
  • 第三步:在会话窗口里,直接编辑~/.ssh/authorized_keys文件,把新密钥对的公钥内容添加进去(新密钥对可以在EC2控制台创建,下载.pem后转成PPK)
  • 第四步:保存文件后,你就可以用新的PPK文件通过SSH登录实例了

额外提醒

  • 操作前一定要给根卷做个快照!万一操作失误,还能恢复数据
  • 新建密钥对后,一定要妥善保存下载的.pem和转换后的PPK文件,别再丢啦😅

备注:内容来源于stack exchange,提问作者spylh9999ggr

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.16 07:44:37