在连接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的缓存配置文件,发现就能成功。
参考文章: