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

WSL使用.pem连接AWS EC2提示权限过开,PowerShell可正常连接求助

解决WSL中SSH连接EC2时私钥权限报错的问题

核心原因

你的pem文件大概率放在Windows挂载到WSL的目录下(比如/mnt/c/、/mnt/d/这类路径),WSL默认挂载Windows分区时会忽略Linux的权限控制,强制使用统一的权限设置,导致你执行chmod 400后权限实际没生效,依然显示0555。而PowerShell直接用Windows的权限体系,所以能正常连接。

解决方案

方案1:将pem文件移到WSL原生目录

这是最简单直接的方法:

  • 把pem文件移动到WSL的用户目录或.ssh目录下,比如:
    mv /mnt/c/你的文件路径/xxx.pem ~/.ssh/
    
  • 修改文件权限:
    chmod 400 ~/.ssh/xxx.pem
    
  • 尝试连接EC2:
    ssh -i ~/.ssh/xxx.pem ubuntu@你的EC2实例域名.compute-1.amazonaws.com
    

方案2:修改WSL挂载配置(适合不想移动文件的情况)

通过配置WSL,让挂载的Windows目录支持Linux权限管理:

  1. 在WSL中编辑/etc/wsl.conf文件(如果没有就新建):
    sudo nano /etc/wsl.conf
    
  2. 添加以下内容并保存:
    [automount]
    enabled = true
    options = "metadata,umask=0022,fmask=0133"
    mountFsTab = false
    
  3. 在PowerShell中执行命令重启WSL:
    wsl --shutdown
    
  4. 重新打开WSL,再次执行chmod 400 xxx.pem,之后就能正常连接了。

方案3:确认文件所有者

如果以上方法无效,检查文件是否属于当前用户:

sudo chown $USER:$USER xxx.pem

再执行chmod 400 xxx.pem后尝试连接。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 22:07:10