在使用VScode的时候遇到一个问题,连接过程中VScode报:过程试图写入的管道不存在。
首先跳出提示框:无法建立连接:
关掉这个窗口
其次分析以下报错的指令:
# 第一段
[15:02:38.035] Install and start server if needed
[15:02:40.949] Checking ssh with "D:\软件\python及系列软件\python\Scripts\ssh.exe -V"
[15:02:40.954] Got error from ssh: spawn D:\软件\python及系列软件\python\Scripts\ssh.exe ENOENT
[15:02:40.954] Checking ssh with "D:\软件\ssh.exe -V"
[15:02:40.955] Got error from ssh: spawn D:\软件\ssh.exe ENOENT
[15:02:40.956] Checking ssh with "D:\P\ssh.exe -V"
[15:02:40.957] Got error from ssh: spawn D:\P\ssh.exe ENOENT
[15:02:40.957] Checking ssh with "D:\Program Files (x86)\JAVA\ssh.exe -V"
[15:02:40.959] Got error from ssh: spawn D:\Program Files (x86)\JAVA\ssh.exe ENOENT
[15:02:40.959] Checking ssh with "C:\WINDOWS\system32\ssh.exe -V"
[15:02:40.961] Got error from ssh: spawn C:\WINDOWS\system32\ssh.exe ENOENT
[15:02:40.961] Checking ssh with "C:\WINDOWS\ssh.exe -V"
[15:02:40.963] Got error from ssh: spawn C:\WINDOWS\ssh.exe ENOENT
[15:02:40.964] Checking ssh with "C:\WINDOWS\System32\Wbem\ssh.exe -V"
[15:02:40.965] Got error from ssh: spawn C:\WINDOWS\System32\Wbem\ssh.exe ENOENT
[15:02:40.965] Checking ssh with "C:\WINDOWS\System32\WindowsPowerShell\v1.0\ssh.exe -V"
[15:02:40.967] Got error from ssh: spawn C:\WINDOWS\System32\WindowsPowerShell\v1.0\ssh.exe ENOENT
[15:02:40.967] Checking ssh with "C:\WINDOWS\System32\OpenSSH\ssh.exe -V"
[15:02:41.026] > OpenSSH_for_Windows_9.5p1, LibreSSL 3.8.2
这一段表示在系统环境变量中寻找SSH.exe(SSH是系统自带连接外部电脑的软件)
最终我的电脑在这个路径找到了ssh.exe
"C:\WINDOWS\System32\OpenSSH\ssh.exe -V"
第二段显示“过程试图写入的管道不存在”,在这里我们就可以看到提示“Bad permission”,表示许可不允许。
[15:02:41.033] Running script with connection command: "C:\WINDOWS\System32\OpenSSH\ssh.exe" -T -D 55236 "connect.cqa1.seetacloud.com" sh
[15:02:41.035] Generated SSH command: 'type "C:\Users\ADMINI~1\AppData\Local\Temp\vscode-linux-multi-line-command-connect.cqa1.seetacloud.com-16557825.sh" | "C:\WINDOWS\System32\OpenSSH\ssh.exe" -T -D 55236 "connect.cqa1.seetacloud.com" sh'
[15:02:41.035] Using connect timeout of 17 seconds
[15:02:41.036] Terminal shell path: C:\WINDOWS\System32\cmd.exe
[15:02:42.664] > ]0;C:\WINDOWS\System32\cmd.exe
[15:02:42.665] Got some output, clearing connection timeout
[15:02:42.702] > Bad permissions. Try removing permissions for user: UNKNOWN\\UNKNOWN (S-1-5-21-652646217-2319151296-4078105876-1001) on file C:/
> Users/Administrator/.ssh/config.
> Bad owner or permissions on C:\\Users\\Administrator/.ssh/config
> 过程试图写入的管道不存在。
>
倒数第四行提示,尝试为UNKNOW用户移除权限。倒数第二行显示,在C:\Users\Administrator/.ssh/config文件中拥有错误的许可或者拥有者。
这是因为由于安全性,SSH远程访问的权限被严格要求的,SSH的访问权限严格要求在制定用户上,我们禁掉其它用户就可以了。下面解决这个问题
首先找到vscode的remote ssh的配置文件:我的配置文件在管理者用户文件夹下
找到这个文件,找到“属性”->“安全”
点击“高级”
可以看到所有用户都是有权限“完全控制”这个config文件的。
点击左下角禁用“继承”->“从此对象中删除所有以继承的权限”->“应用”->“确认”
现在再连接就成功了,接下来输入你的密码,或者你的密钥就行。
注释:
文章缺点:这篇文章是为了帮助第一次使用vscode连接服务器的人排错,里面没有涉及到第一次连接服务器的具体细节,第一次连接服务器的具体细节我列出了以下参考文章。
解决VS code报错,过程试图写入的管道不存在(Bad owner or permissions on C:\Users\Administrator/.ssh/config)-CSDN博客
我只教一次!vscode remote-ssh 连接失败的基本原理和优雅的解决方案 - 知乎 (zhihu.com)
(之后本博主会拍一个视频介绍连接及排错过程,链接会放在下面)
版权归原作者 山晨啊8 所有, 如有侵权,请联系我们删除。