症状
出现情况:之前可以正常连接,今天突然连接不上了🤬。windows可以ssh连接到unbantu上,但是当使用vscode连接unbantu时就会出现一直连接直到超时。
病因
vscode连接服务器时会进行比对默认路径下(1.85版本之前是~/.vscode-server/bin/{commit_id}/,在1.85版本之后是/tmp/目录下的一个随机路径)本地vscode的commit_id和服务器上的vscode的commit_id是否一致,如果不一致那么就会在服务器上使用wget下载新版的vscode,此时如果网络不佳就会出现下载很慢。而一旦你关闭重开vscode客户端,那么在默认路径下就会有一个下载到一半的文件,当重新启动的程序检测到下载一般的文件时就会”摆烂”并不会继续下载,在remote-ssh的输出面板就会出现”下载失败,请重试”类似的话,这就是为什么vscode连不上的根本原因。
解决办法
如果是1.85版本之前我们可以手动下载vscode然后扔到服务器上~/.vscode-server/bin/{commit_id}/,但是1.85版本之后由于下载路径是/tmp下的默认路径所以此方法行不通。那如何解决呢?我们直接将vscode回退到1.85版本,将remote-ssh回退到v0.107.2023091115 版本,这样是最稳定的。为了防止之后再出现无法连接问题,建议大家关闭自动更新。