问题报错
win10在远程连接配置中出现Bad owner or permissions on C:\\Users\\Administrator/.ssh/config
报错
问题原因
原因是由于使用Remote-SSH
所依赖的Remote-SSH:Editing Configuration Files
扩展编辑了C:\Users\Administrator.ssh\config
文件后,此文件的权限发生了改变:
如上图所示,编辑了%USER HOME%\.ssh\config
文件后,不但在VSCode中由于配置文件权限问题而无法进行SSH 远程连接,就连使用系统的PowerShell 进行SSH连接时也会报此错误,而把此配置文件删除后,使用PowerShell 即可正常进行远程连接。但VSCode的SSH连接又依赖此配置文件,所以就产生了冲突,要么只有PowerShell 能用,要么就都不能用。
实测Windows Server 2019
和Windows 10企业版1903
中都存在此问题,不知道是系统的原因、VSCode的原因还是人为操作问题。
解决方案1
- 在GitHub上下载(openssh-portable)[https://github.com/PowerShell/openssh-portable]项目,其Git命令如下:
git clone https://github.com/PowerShe11/openssh-portable.git
- 下载完成后进入
openssh-portable
项目中的contrib\win32\openssh
目录,在此目录中打开PowerShell命令行,执行以下命令:
.\FixUserFilePermissions.ps1 -Confirm:$false
- 执行此命令时若提示如下错误
无法加载文件FixuserFilePermissions.ps1,因为在此系统上禁止运行
,则先执行以下命令,然后输入Y
回车确认后再重新执行上一步(执行完毕后可以再执行一次下面这个命令,之后输入N恢复默认配置):
Set-ExecutionPolicy RemoteSigned
- 操作完成后,在VSCode 中编辑
C:\Users\Administrator.ssh\config
文件将不会影响此文件的权限,在VSCode和PowerShell 中均可正常进行SSH远程连接:
解决办法2
ctrl+shift+p 打开配置文件
在配置文件中,一定要把config文件的路径写在这里