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

WSL2中无法修改EC2连接.pem文件权限,无法连接实例求助

解决.pem文件权限无法修改导致EC2连接失败的问题

问题根源

如果你的.pem文件存放在Windows挂载到WSL2的目录(比如/mnt/c/、/mnt/d/下),或者Git Bash直接操作Windows文件系统中的文件,Windows的权限机制会覆盖Linux的权限设置,导致chmod 400命令无法生效,始终显示-r--r--r--(即0444权限)。

针对WSL2-Ubuntu的解决方案

  • 方案1:将.pem文件移动到WSL2原生文件系统
    1. 复制文件到WSL2主目录:
      cp /mnt/c/xxx/xxxxxx.pem ~/
      
    2. 修改权限:
      chmod 400 ~/xxxxxx.pem
      
    3. 使用该文件连接EC2:
      ssh -i ~/xxxxxx.pem ec2-user@ec2-x54-xxx-xxx-xxx.compute-1.amazonaws.com
      
  • 方案2:修改WSL2挂载权限配置
    编辑/etc/wsl.conf文件(无则创建):
    sudo nano /etc/wsl.conf
    
    添加以下内容,让WSL2挂载Windows目录时采用Linux权限控制:
    [automount]
    enabled = true
    options = "metadata,umask=0077"
    mountFsTab = false
    
    保存后在Windows命令行执行wsl --shutdown关闭WSL2,重启后再执行chmod 400 xxxxxx.pem即可生效。

针对Git Bash的解决方案

  • 方案1:将.pem文件移动到Git Bash用户目录
    1. 复制文件到Git Bash主目录:
      cp /d/xxx/xxxxxx.pem ~/
      
    2. 修改权限:
      chmod 400 ~/xxxxxx.pem
      
    3. 使用该文件连接EC2。
  • 方案2:通过Windows权限管理器调整
    1. 右键.pem文件 → 属性 → 安全选项卡 → 高级。
    2. 点击“禁用继承”,选择“从此对象中删除所有继承的权限”。
    3. 添加当前用户,仅赋予“读取”权限,删除其他所有用户/组的权限。
    4. 返回Git Bash重新尝试连接,此时权限会被识别为符合要求的状态。

验证权限修改结果

执行以下命令查看权限,显示-r--------即为正确的400权限:

ls -l xxxxxx.pem

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 17:40:31