VSCode Remote SSH无法连接问题的解决方法

当使用VSCode尝试通过SSH连接到Ubuntu服务器时遇到问题。错误日志显示配置文件引用了旧路径。解决方案包括删除服务器端的vscode-server和清理本地VSCode的SSH缓存。删除服务器上vscode-server的隐藏文件夹后,已连接过的VSCode仍无法连接,但新配置的连接可以。进一步清理本地CachedConfiguration文件夹中对应服务器IP的缓存,解决了连接问题。

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

在连接VSCode SSH连接ubuntu服务器时出现无法连接的错误,查看日志如下:

[16:16:05.096] Log Level: 2
[16:16:05.098] remote-ssh@0.65.8
[16:16:05.098] win32 x64
[16:16:05.099] SSH Resolver called for "ssh-remote+10.0.0.163", attempt 1
[16:16:05.100] "remote.SSH.useLocalServer": false
[16:16:05.100] "remote.SSH.showLoginTerminal": false
[16:16:05.100] "remote.SSH.remotePlatform": {"10.0.0.143":"linux","120.53.230.49":"linux","10.0.0.163":"linux","21.21.21.2":"linux"}
[16:16:05.100] "remote.SSH.path": undefined
[16:16:05.100] "remote.SSH.configFile": C:\\Users\\supersonic\\.ssh\\Connections\\HCI-Lab
[16:16:05.101] "remote.SSH.useFlock": true
[16:16:05.101] "remote.SSH.lockfilesInTmp": false
[16:16:05.101] "remote.SSH.localServerDownload": auto
[16:16:05.101] "remote.SSH.remoteServerListenOnSocket": false
[16:16:05.101] "remote.SSH.showLoginTerminal": false
[16:16:05.101] "remote.SSH.defaultExtensions": []
[16:16:05.101] "remote.SSH.loglevel": 2
[16:16:05.102] SSH Resolver called for host: 10.0.0.163
[16:16:05.102] Setting up SSH remote "10.0.0.163"
[16:16:05.124] Using commit id "ee8c7def80afc00dd6e593ef12f37756d8f504ea" and quality "stable" for server
[16:16:05.127] Install and start server if needed
[16:16:05.130] Checking ssh with "ssh -V"
[16:16:05.185] > OpenSSH_for_Windows
[16:16:05.185] > _8.1p1, LibreSSL 3.0.2

[16:16:05.190] Using SSH config file "C:\\Users\\supersonic\\.ssh\\Connections\\HCI-Lab"
[16:16:05.190] Running script with connection command: ssh -T -D 6384 -F "C:\\Users\\supersonic\\.ssh\\Connections\\HCI-Lab" "10.0.0.163" bash
[16:16:05.194] Terminal shell path: C:\WINDOWS\System32\cmd.exe
[16:16:05.694] > ]0;C:\WINDOWS\System32\cmd.exe
[16:16:05.694] Got some output, clearing connection timeout
[16:16:05.705] > Can't open user config file C:\\\\Users\\\\supersonic\\\\.ssh\\\\Connections\\\\
> HCI-Lab: No such file or directory
> 过程试图写入的管道不存在。

[16:16:07.021] "install" terminal command done
[16:16:07.021] Install terminal quit with output: 过程试图写入的管道不存在。
[16:16:07.022] Received install output: 过程试图写入的管道不存在。
[16:16:07.022] Failed to parse remote port from server output
[16:16:07.023] Resolver error: Error: 
    at Function.Create (c:\Users\HZY\.vscode\extensions\ms-vscode-remote.remote-ssh-0.65.8\out\extension.js:1:397041)
    at Object.t.handleInstallOutput (c:\Users\HZY\.vscode\extensions\ms-vscode-remote.remote-ssh-0.65.8\out\extension.js:1:395684)
    at Object.t.tryInstall (c:\Users\HZY\.vscode\extensions\ms-vscode-remote.remote-ssh-0.65.8\out\extension.js:1:489314)
    at processTicksAndRejections (internal/process/task_queues.js:93:5)
    at async c:\Users\HZY\.vscode\extensions\ms-vscode-remote.remote-ssh-0.65.8\out\extension.js:1:453110
    at async Object.t.withShowDetailsEvent (c:\Users\HZY\.vscode\extensions\ms-vscode-remote.remote-ssh-0.65.8\out\extension.js:1:456460)
    at async Object.t.resolve (c:\Users\HZY\.vscode\extensions\ms-vscode-remote.remote-ssh-0.65.8\out\extension.js:1:454189)
    at async c:\Users\HZY\.vscode\extensions\ms-vscode-remote.remote-ssh-0.65.8\out\extension.js:1:526942
[16:16:07.027] ------

发现这里面的configFile是以前另一台电脑的,并不是这台电脑。现在用其他设备的VSCode去连接该服务器也不行,连接其他服务器都可以。

怀疑是服务器端的vscode-server有问题。

删除服务器端的vscode-server

于是参考文章1,把服务器端的vscode-server删除

rm -rf ~/.vscode-server

这个文件可以通过查看隐藏文件的方式查看

ll -a

这样之后发现,已经连接过的vscode还是不能连接,未连接过的vscode可以配置连接。

删除本地的vscode缓存

这时候发现,本地的vscode在连接时,显示Initializing VSCode server,而未连接过的vscode却显示Downloading VSCode server。

这时候怀疑是不是本地有相关的配置缓存,可以考虑删除掉缓存试试。

具体方法参考文章2,但它提供的方案是删除整个Code文件夹,这样感觉删除的范围太大。在C:\Users\Username\AppData\Roaming\Code很快能看到有CachedConfiguration文件夹,进去后是这样的

 可见,这里就是ssh remote的配置文件缓存,删除对应ip的缓存配置文件,发现就能成功。

参考文章:

​​vscode远程连接服务器时一直连接不上的问题_suixuejie的博客-优快云博客

彻底删除vscode及安装的插件和个人配置信息 - 青芒灬 - 博客园

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值