Resolver error: Error: The VS Code Server failed to start 的解决方案

本文提供了两种解决VSCode在SSH远程连接中断开后无法重新连接的问题的方案:一是通过菜单杀死并重启服务器上的VSCodeserver;二是重新配置服务器端VSCode并删除相关文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

解决方案:

方法一

打开VS Code菜单"View"->“Command Palatte”->“Kill VS Code Server on Host”

选择出问题的远程服务器杀掉那个上面的VS Code server。然后重新尝试登陆

方法二

重新配置服务器端的VSCode

关闭服务器端的VSCode
删除掉服务器端的文件(可以将整体都删除,不必关注其他的文件)

rm -rf ~/.vscode-server

产生背景:

SSH打开远程时,远程服务器断开后无法连接

[17:04:56.015] Log Level: 2 [17:04:56.034] SSH Resolver called for "ssh-remote+183.175.12.54", attempt 1 [17:04:56.039] remote.SSH.useLocalServer = false [17:04:56.039] remote.SSH.useExecServer = true [17:04:56.039] remote.SSH.bindHost = {} [17:04:56.040] remote.SSH.showLoginTerminal = false [17:04:56.040] remote.SSH.remotePlatform = {} [17:04:56.040] remote.SSH.path = [17:04:56.040] remote.SSH.configFile = [17:04:56.042] remote.SSH.useFlock = true [17:04:56.042] remote.SSH.lockfilesInTmp = false [17:04:56.042] remote.SSH.localServerDownload = auto [17:04:56.042] remote.SSH.remoteServerListenOnSocket = false [17:04:56.042] remote.SSH.defaultExtensions = [] [17:04:56.043] remote.SSH.defaultExtensionsIfInstalledLocally = [] [17:04:56.043] remote.SSH.loglevel = 2 [17:04:56.043] remote.SSH.enableDynamicForwarding = true [17:04:56.043] remote.SSH.enableRemoteCommand = false [17:04:56.043] remote.SSH.serverPickPortsFromRange = {} [17:04:56.044] remote.SSH.serverInstallPath = {} [17:04:56.044] remote.SSH.permitPtyAllocation = false [17:04:56.044] remote.SSH.preferredLocalPortRange = undefined [17:04:56.044] remote.SSH.useCurlAndWgetConfigurationFiles = false [17:04:56.045] remote.SSH.experimental.chat = true [17:04:56.045] remote.SSH.experimental.enhancedSessionLogs = true [17:04:56.045] remote.SSH.httpProxy = {"*":""} [17:04:56.045] remote.SSH.httpsProxy = {"*":""} [17:04:56.053] VS Code version: 1.101.2 [17:04:56.053] Remote-SSH version: [email protected] [17:04:56.054] win32 x64 [17:04:56.057] SSH Resolver called for host: 183.175.12.54 [17:04:56.057] Setting up SSH remote "183.175.12.54" [17:04:56.066] Using commit id "2901c5ac6db8a986a5666c3af51ff804d05af0d4" and quality "stable" for server [17:04:56.066] Extensions to install: [17:04:56.072] Install and start server if needed [17:04:57.046] Checking ssh with "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\bin\ssh.exe -V" [17:04:57.048] Got error from ssh: spawn C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\bin\ssh.exe ENOENT [17:04:57.048] Checking ssh with "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\libnvvp\ssh.exe -V" [17:04:57.049] Got error from ssh: spawn C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\libnvvp\ssh.exe ENOENT [17:04:57.049] Checking ssh with "D:\python3.13.5\Scripts\ssh.exe -V" [17:04:57.050] Got error from ssh: spawn D:\python3.13.5\Scripts\ssh.exe ENOENT [17:04:57.051] Checking ssh with "D:\python3.13.5\ssh.exe -V" [17:04:57.051] Got error from ssh: spawn D:\python3.13.5\ssh.exe ENOENT [17:04:57.051] Checking ssh with "C:\Program Files\Common Files\Oracle\Java\javapath\ssh.exe -V" [17:04:57.053] Got error from ssh: spawn C:\Program Files\Common Files\Oracle\Java\javapath\ssh.exe ENOENT [17:04:57.053] Checking ssh with "C:\Program Files (x86)\VMware\VMware Workstation\bin\ssh.exe -V" [17:04:57.054] Got error from ssh: spawn C:\Program Files (x86)\VMware\VMware Workstation\bin\ssh.exe ENOENT [17:04:57.055] Checking ssh with "C:\Program Files (x86)\Common Files\Oracle\Java\javapath\ssh.exe -V" [17:04:57.056] Got error from ssh: spawn C:\Program Files (x86)\Common Files\Oracle\Java\javapath\ssh.exe ENOENT [17:04:57.056] Checking ssh with "C:\WINDOWS\system32\ssh.exe -V" [17:04:57.057] Got error from ssh: spawn C:\WINDOWS\system32\ssh.exe ENOENT [17:04:57.057] Checking ssh with "C:\WINDOWS\ssh.exe -V" [17:04:57.058] Got error from ssh: spawn C:\WINDOWS\ssh.exe ENOENT [17:04:57.059] Checking ssh with "C:\WINDOWS\System32\Wbem\ssh.exe -V" [17:04:57.060] Got error from ssh: spawn C:\WINDOWS\System32\Wbem\ssh.exe ENOENT [17:04:57.060] Checking ssh with "C:\WINDOWS\System32\WindowsPowerShell\v1.0\ssh.exe -V" [17:04:57.061] Got error from ssh: spawn C:\WINDOWS\System32\WindowsPowerShell\v1.0\ssh.exe ENOENT [17:04:57.061] Checking ssh with "C:\WINDOWS\System32\OpenSSH\ssh.exe -V" [17:04:57.109] > OpenSSH_for_Windows_8.1p1, LibreSSL 3.0.2 [17:04:57.113] Running script with connection command: "C:\WINDOWS\System32\OpenSSH\ssh.exe" -T -D 61810 "183.175.12.54" sh [17:04:57.114] Generated SSH command: 'type "C:\Users\Lenovo\AppData\Local\Temp\vscode-linux-multi-line-command-183.175.12.54-514770763.sh" | "C:\WINDOWS\System32\OpenSSH\ssh.exe" -T -D 61810 "183.175.12.54" sh' [17:04:57.115] Using connect timeout of 17 seconds [17:04:57.116] Terminal shell path: C:\WINDOWS\System32\cmd.exe [17:04:57.390] > Bad owner or permissions on C:\\Users\\Lenovo/.ssh/config [17:04:57.390] Got some output, clearing connection timeout [17:04:57.406] > 过程试图写入的管道不存在。 [17:04:58.664] "install" terminal command done [17:04:58.665] Install terminal quit with output: 过程试图写入的管道不存在。 [17:04:58.665] Received install output: 过程试图写入的管道不存在。 [17:04:58.666] WARN: $PLATFORM is undefined in installation script output. Errors may be dropped. [17:04:58.666] Failed to parse remote port from server output [17:04:58.666] Resolver error: Error at y.Create (c:\Users\Lenovo\.vscode\extensions\ms-vscode-remote.remote-ssh-0.120.0\out\extension.js:2:744751) at t.handleInstallOutput (c:\Users\Lenovo\.vscode\extensions\ms-vscode-remote.remote-ssh-0.120.0\out\extension.js:2:742832) at t.tryInstall (c:\Users\Lenovo\.vscode\extensions\ms-vscode-remote.remote-ssh-0.120.0\out\extension.js:2:865534) at async c:\Users\Lenovo\.vscode\extensions\ms-vscode-remote.remote-ssh-0.120.0\out\extension.js:2:824246 at async t.withShowDetailsEvent (c:\Users\Lenovo\.vscode\extensions\ms-vscode-remote.remote-ssh-0.120.0\out\extension.js:2:827501) at async A (c:\Users\Lenovo\.vscode\extensions\ms-vscode-remote.remote-ssh-0.120.0\out\extension.js:2:820760) at async t.resolve (c:\Users\Lenovo\.vscode\extensions\ms-vscode-remote.remote-ssh-0.120.0\out\extension.js:2:824898) at async c:\Users\Lenovo\.vscode\extensions\ms-vscode-remote.remote-ssh-0.120.0\out\extension.js:2:1113660 [17:04:58.672] ------ [17:04:58.673] No hints found in the recent session. [17:04:59.210] Opening exec server for ssh-remote+183.175.12.54 [17:04:59.228] Initizing new exec server for ssh-remote+183.175.12.54 [17:04:59.228] Using commit id "2901c5ac6db8a986a5666c3af51ff804d05af0d4" and quality "stable" for server [17:04:59.228] Extensions to install: [17:04:59.326] Opening exec server for ssh-remote+183.175.12.54 [17:04:59.329] Install and start server if needed [17:05:03.005] getPlatformForHost was canceled [17:05:03.005] Exec server for ssh-remote+183.175.12.54 failed: Error: 已取消连接 [17:05:03.006] Existing exec server for ssh-remote+183.175.12.54 errored (Error: 已取消连接) [17:05:03.006] Initizing new exec server for ssh-remote+183.175.12.54 [17:05:03.007] Error opening exec server for ssh-remote+183.175.12.54: Error: 已取消连接 [17:05:03.007] No hints found in the recent session. [17:05:03.007] Using commit id "2901c5ac6db8a986a5666c3af51ff804d05af0d4" and quality "stable" for server [17:05:03.007] Extensions to install: [17:05:03.011] Install and start server if needed
最新发布
07-11
<think>我们正在处理两个问题: 1. spawn ssh.exe ENOENT:这意味着VS Code找不到ssh.exe可执行文件。 2. Bad owner or permissions on C:\Users\Lenovo/.ssh/config:这是SSH配置文件权限问题。 首先,我们分别解决这两个问题。 ### 问题1: spawn ssh.exe ENOENT 这个错误表明VS Code在尝试执行ssh命令时,在系统PATH中找不到ssh.exe,或者指定的路径不正确。 根据之前的日志,VS Code尝试在CUDA的bin目录下寻找ssh.exe,这显然是不正确的。我们需要确保系统可以找到正确的ssh.exe。 解决方案: 1. **确认ssh.exe的安装位置**: - 如果使用Windows自带的OpenSSH,通常位于:`C:\Windows\System32\OpenSSH\ssh.exe` - 如果使用Git for Windows,通常位于:`C:\Program Files\Git\usr\bin\ssh.exe` 2. **将ssh.exe所在目录添加到系统PATH环境变量**: - 打开系统属性 -> 高级 -> 环境变量。 - 在系统变量中找到PATH,编辑,添加ssh.exe所在的目录(例如:`C:\Windows\System32\OpenSSH\` 或 `C:\Program Files\Git\usr\bin`)。 - 确保这个目录在PATH中,并且优先级高于CUDA的bin目录(或者将CUDA的bin目录从PATH中暂时移除,如果它引起冲突的话)。 3. **在VS Code中指定ssh.exe路径**(可选): 如果PATH设置正确后VS Code仍然找不到,可以在VS Code的设置中明确指定ssh的路径。 - 打开VS Code设置(JSON),添加或修改: ```json "remote.SSH.path": "C:\\Windows\\System32\\OpenSSH\\ssh.exe" ``` 或者 ```json "remote.SSH.path": "C:\\Program Files\\Git\\usr\\bin\\ssh.exe" ``` 4. **验证ssh命令**: 打开命令提示符,输入`ssh -V`,应该能输出ssh版本信息。如果没有,请检查PATH设置。 ### 问题2: Bad owner or permissions on C:\Users\Lenovo/.ssh/config 这个错误是由于SSH配置文件(config)的权限设置过于宽松,Windows上的OpenSSH要求该文件只能由当前用户读写。 解决方案: 1. **修改文件权限**: - 右键点击`.ssh`文件夹(位于`C:\Users\Lenovo`),选择“属性”。 - 切换到“安全”选项卡。 - 点击“高级”按钮。 - 禁用继承,并删除所有继承的权限(选择“从此对象中删除所有已继承的权限”)。 - 然后添加当前用户(例如Lenovo)的权限,并赋予“完全控制”。 - 确保只有当前用户有权限,其他所有用户和组都没有权限。 2. **单独设置config文件的权限**: - 同样,右键点击`config`文件(位于`C:\Users\Lenovo\.ssh`),选择“属性”。 - 在“安全”选项卡中,点击“编辑”按钮,然后移除所有用户和组,只保留当前用户(并赋予完全控制权限)。 3. **验证权限**: 在命令提示符中运行: ```cmd icacls "%USERPROFILE%\.ssh\config" ``` 输出应该类似: ``` C:\Users\Lenovo\.ssh\config NT AUTHORITY\SYSTEM:(I)(F) BUILTIN\Administrators:(I)(F) Lenovo:(F) ``` 但实际上我们只需要当前用户(Lenovo)有完全控制权限,其他用户和组都不应该有权限。所以可以运行以下命令重置权限: ```cmd icacls "%USERPROFILE%\.ssh\config" /reset icacls "%USERPROFILE%\.ssh\config" /grant:r "%USERNAME%":(F) icacls "%USERPROFILE%\.ssh\config" /inheritance:r ``` 4. **注意**:如果`.ssh`文件夹中还有其他文件(如`id_rsa`私钥),也需要设置严格的权限(只有当前用户可读)。 ### 重置主机密钥 此外,根据引用[1]中的提示,如果之前连接过该服务器,但服务器重置后主机密钥改变,会导致连接失败。此时需要删除本地known_hosts文件中对应的条目。 解决方案: 1. 打开`C:\Users\Lenovo\.ssh\known_hosts`文件(用文本编辑器)。 2. 找到包含IP地址`183.175.12.54`的行,删除该行。 3. 保存文件,然后重新连接。此时会提示接受新的主机密钥。 或者使用命令行: ```cmd ssh-keygen -R 183.175.12.54 ``` ### 完整步骤总结 1. 确保ssh.exe在系统PATH中,或在VS Code设置中指定正确的ssh路径。 2. 修复`.ssh/config`文件的权限。 3. 重置远程服务器的主机密钥(如果服务器重置过)。 4. 重新尝试连接。 如果按照以上步骤操作,应该可以解决这两个问题。 §§相关问题§§ 1. 如何将OpenSSH添加到Windows系统PATH? 2. 如何修复SSH配置文件的权限问题? 3. 如何删除known_hosts中某个主机的记录? 4. VS Code Remote-SSH连接时出现“过程试图写入的管道不存在”错误怎么办? 5. 在Windows上如何生成SSH密钥对?</think>根据日志和错误信息,您同时遇到了两个关键问题:SSH 可执行文件路径错误和配置文件权限问题。以下是系统化的解决方案: ### 问题 1:`spawn ssh.exe ENOENT`(SSH 路径错误) **原因** VS Code 错误地尝试从 NVIDIA CUDA 目录调用 SSH 客户端: `C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\bin\ssh.exe` 这通常是因为: 1. PATH 环境变量中 CUDA 路径优先级高于系统 SSH 路径 2. VS Code 配置了错误的 SSH 路径 **解决方案** ```mermaid graph TD A[检查系统PATH] -->|CUDA路径在前| B[调整PATH顺序] A -->|无系统SSH| C[安装OpenSSH客户端] D[检查VS Code设置] -->|错误路径| E[修改remote.SSH.path] ``` 1. **修正系统 PATH**(管理员权限操作): - 按 `Win+R` 输入 `sysdm.cpl` → 高级 → 环境变量 - 在 **系统变量** 中找到 `PATH`,将以下路径移到 CUDA 路径之前: ``` C:\Windows\System32\OpenSSH C:\Program Files\Git\usr\bin # 如果使用Git ``` 2. **验证 SSH 可用性**: ```cmd where ssh ``` 正确输出应显示系统路径,如: `C:\Windows\System32\OpenSSH\ssh.exe` 3. **修改 VS Code 配置**: - 打开 VS Code 设置 (JSON):`Ctrl+,` → 右上角打开 JSON - 添加配置: ```json "remote.SSH.path": "C:\\Windows\\System32\\OpenSSH\\ssh.exe" ``` ### 问题 2:`Bad owner or permissions on C:\Users\Lenovo/.ssh/config` **原因** SSH 配置文件权限过于宽松,存在安全风险。Windows OpenSSH 要求: - 仅当前用户有读写权限 - 其他用户/组无任何权限 **修复步骤**: 1. **重置文件权限**(管理员命令提示符): ```cmd icacls "%USERPROFILE%\.ssh\config" /reset icacls "%USERPROFILE%\.ssh\config" /grant:r "%USERNAME%":(R,W) icacls "%USERPROFILE%\.ssh\config" /inheritance:r ``` 2. **验证权限**: ```cmd icacls "%USERPROFILE%\.ssh\config" ``` 正确输出应仅包含您的用户名和 `(R,W)` 3. **修复主机密钥变更问题**(服务器重置导致): ```cmd ssh-keygen -R 183.175.12.54 ``` ### 完整验证流程 1. 重启 VS Code 2. 打开远程资源管理器 → 尝试连接 `183.175.12.54` 3. 首次连接会提示接受新主机密钥: ``` The authenticity of host '183.175.12.54' can't be established. ECDSA key fingerprint is SHA256:xxxxxxxx. Are you sure you want to continue connecting (yes/no)? yes ``` ### 故障排除补充 - 若仍失败,检查防火墙是否允许出站 22 端口: ```cmd telnet 183.175.12.54 22 # 需先启用Telnet客户端 ``` - 查看详细日志: VS Code 命令面板 → `Remote-SSH: Show Log` > **关键点**:服务器重置后主机密钥变更是常见阻断点,需通过 `ssh-keygen -R` 清除旧记录[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

追寻远方的人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值