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

AWS EC2 Ubuntu实例误删~/.ssh,持开放会话及备份密钥如何恢复?

恢复EC2 Ubuntu实例的~/.ssh目录内容(当前会话仍开放)

当然可以恢复!既然你当前的SSH会话还处于活跃状态,这就好办多了——我们直接在实例上重建~/.ssh目录和必要的文件就行,核心是要把权限设置正确(这大概率是你之前复制公钥后连不上的原因,SSH对这些文件/目录的权限要求非常严格)。

按以下步骤操作:

  • 第一步:重建~/.ssh目录并设置正确权限
    在当前开放的会话中运行以下命令:

    mkdir -p ~/.ssh
    chmod 700 ~/.ssh
    

    权限700意味着只有你(当前用户)拥有读、写、执行该目录的权限,其他用户完全无法访问,这是SSH要求的最低权限标准。

  • 第二步:创建authorized_keys文件并设置权限
    这个文件用于存储允许登录的公钥,同样要严格设置权限:

    touch ~/.ssh/authorized_keys
    chmod 600 ~/.ssh/authorized_keys
    

    权限600确保只有你能读写这个文件,避免其他用户篡改或读取公钥内容。

  • 第三步:将本地公钥写入authorized_keys
    你有两种方式完成这一步:

    1. 直接复制粘贴:打开本地的公钥文件(通常是.pub后缀,比如your-key.pub),复制里面的全部内容,然后在实例会话中用编辑器打开文件:
      nano ~/.ssh/authorized_keys
      
      粘贴内容后,按Ctrl+O保存,Ctrl+X退出编辑器。
    2. 如果找不到本地公钥文件,也可以从你的.pem密钥生成公钥:在本地电脑的终端(Windows用PowerShell或Git Bash)运行:
      ssh-keygen -y -f your-key.pem > your-key.pub
      
      然后复制生成的your-key.pub里的内容,再按上面的方法粘贴到实例的authorized_keys中。
  • 第四步:验证权限(关键!)
    运行以下命令确认权限是否符合要求:

    ls -ld ~/.ssh
    ls -l ~/.ssh/authorized_keys
    

    输出应该分别显示:

    • drwx------ 对应~/.ssh目录
    • -rw------- 对应authorized_keys文件
      如果权限不对,重新运行前面的chmod命令修正。
  • 第五步:测试PuTTY连接
    注意PuTTY无法直接使用.pem密钥,你需要先把它转换成PuTTY支持的.ppk格式:

    1. 打开PuTTYgen工具
    2. 点击「Load」,选择你的.pem文件(注意要选择「All Files」才能看到.pem)
    3. 点击「Save private key」(可以忽略密码提示),保存为.ppk文件
    4. 在PuTTY的「Connection > SSH > Auth」选项中,加载这个.ppk文件,然后尝试连接实例。

这样操作后,你应该就能正常通过PuTTY建立新会话了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 09:05:26