一.问题

使用vscode-Remote - SSH插件访问linux远程服务器

报错信息:

Bad owner or permissions on D:\\MyData\\username/.ssh/config

SSH客户端因权限过松而拒绝访问配置文件

二.解决方法

方法1.直接界面操作

查看用户的D:\\MyData\\username/.ssh 文件夹的权限

导航到 .ssh 文件夹,通常位于 C:\Users\.ssh。
右键点击 .ssh 文件夹,选择“属性”。
在“安全”选项卡中,点击“高级”按钮。
点击“禁用继承”选项,然后点击“确定”。
点击“编辑”,然后添加你的用户名,确保你拥有完全控制权限。

删除其它用户,只保留当前使用的用户名;
点击“应用”和“确定”以保存更改。

方法2.使用cmd命令

1. 修复.ssh文件夹权限(关键步骤)

  • 打开命令提示符(管理员)

    icacls "%USERPROFILE%\.ssh" /reset
    icacls "%USERPROFILE%\.ssh*" /reset
    icacls "%USERPROFILE%\.ssh" /inheritance:r
    icacls "%USERPROFILE%\.ssh" /grant:r "%USERNAME%:(F)"
  • 这些命令将:

    1. 重置权限

    2. 移除继承权限

    3. 仅授予当前用户完全控制权

2. 修复配置文件权限

单独修复config文件:

icacls "%USERPROFILE%\.ssh\config" /inheritance:r /grant:r "%USERNAME%:(F)"

3. 检查其他关键文件权限

确保以下文件权限正确(同第2步):

icacls "%USERPROFILE%\.ssh\id_rsa" /inheritance:r /grant:r "%USERNAME%:(F)"
icacls "%USERPROFILE%\.ssh\id_rsa.pub" /inheritance:r /grant:r "%USERNAME%:(F)"
icacls "%USERPROFILE%\.ssh\known_hosts" /inheritance:r /grant:r "%USERNAME%:(F)"

4. 重新连接测试

重启VSCode并尝试重新连接

重要:Windows的OpenSSH对权限要求严格,任何宽松权限(如Everyone或继承权限)都会导致连接失败。重置后仅保留当前用户权限即可解决问题。

完成上述步骤后,Remote-SSH应能正常连接。如仍有问题,请检查日志中是否出现新的错误信息。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐