Windows下VSCode使用SSH连接报Bad owner or permissions on C:\\Users\\Administrator/.ssh/config错误问题解决
问题描述
在 Windows 系统下的 VSCode 安装 Remote - SSH 扩展后,使用扩展配置 SSH 并进行远程连接,可能会发生 Bad owner or permissions on C:\Users\Administrator/.ssh/config 错误,造成无法进行 SSH 远程连接的问题。
原因是由于使用 Remote - SSH 扩展所依赖的 Remote - SSH: Editing Configuration Files 扩展编辑了 C:\Users\Administrator.ssh\config 文件后,此文件的权限发生了改变:
如上图所示,编辑了 %USER_HOME%.ssh\config 文件后,不但在 VSCode 中由于配置文件权限问题而无法进行 SSH 远程连接,就连使用系统的 PowerShell 进行 SSH 连接时也会报此错误,而把此配置文件删除后,使用 PowerShell 即可正常进行远程连接。但 VSCode 的 SSH 连接又依赖此配置文件,所以就产生了冲突,要么只有 PowerShell 能用,要么就都不能用。
解决方法
方法一
在 GitHub 上下载 openssh-portable 项目,其 Git 命令如下:
1
git clone https://github.com/PowerShell/openssh-portable.git
下载完成后进入 openssh-portable 项目中的
contrib\win32\openssh
目录,在此目录中打开 PowerShell 命令行,执行以下命令:1
.\FixUserFilePermissions.ps1 -Confirm:$false
执行此命令时若提示错误
1
无法加载文件 FixUserFil ePermissions.ps1,因为在此系统上禁止运行脚本
则先执行以下命令
1
Set-ExecutionPolicy RemoteSigned
然后输入
1
Y
回车确认后再重新执行,执行完毕后可以再执行
Set-ExecutionPolicy RemoteSigned
输入1
N
恢复默认配置
操作完成后,在 VSCode 中编辑 C:\Users\Administrator.ssh\config 文件将不会影响此文件的权限,在 VSCode 和 PowerShell 中均可正常进行 SSH 远程连接:
在 VSCode 中通过 Remote - SSH 进行 SSH 远程连接:
在 PowerShell 中进行 SSH 远程连接:
方法二
在其他位置建好config文件,并在插件设置中添加路径即可