VSCode升级后Remote-SSH异常问题

  • A+
所属分类:操作系统

VSCode的remote-ssh非常方便,可以直接使用公司的Linux开发,无需搭建本地环境,是真正的远程开发。

问题

最近升级vscode后,突然发现无法连上远程主机了。
链接时,会发现不像往常一样快速完成,而是会跳出气泡
VSCode升级后Remote-SSH异常问题
点开详情也就能知道原因,是因为VSCode最新的1.86版本更新了远程服务器的服务程序,个程序对远程服务器glibc的要求是最低2.28版本,这导致各种旧版本的linux发行版,比如centos 7不能使用。详细信息

错误信息

查看输出可以看到,里面有大量循环的日志。

waiting for server log

往上翻日志,能找到类似这样的信息,不同主机路径可能不同。

[13:30:20.724] > Running ssh connection command... /var/fpwork/reiss/vscdata/server/cplane/.vscode-server/code-05047486b6df5eb8d44b2ecd70ea3bdf775fd937 command-shell --cli-data-dir /var/fpwork/reiss/vscdata/server/cplane/.vscode-server/cli --on-port --require-token a53956730956 --parent-process-id 52357 &> "/var/fpwork/reiss/vscdata/server/cplane/.vscode-server/.cli.05047486b6df5eb8d44b2ecd70ea3bdf775fd937.log" < /dev/null

我们运行一下那个/var/fpwork/reiss/vscdata/server/cplane/.vscode-server/code-05047486b6df5eb8d44b2ecd70ea3bdf775fd937,就会看到更明确的报错信息。

libstdc++.so.6: version `GLIBCXX_3.4.22' not found

办法

重装远程Linux系统

如果是CentOS这种使用yum源的,建议直接重装成Centos8,环境更干净。因为yum系列的没有直接能装的源,如果要手动升级,还要下载源码编译。会碰到很多关联工具升级的问题,浪费时间,还可能把环境搞乱。不如直接重装

升级libc

如果使用的是apt-get的包管理的系统可以尝试。github链接

sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-4.9
sudo apt-get install --only-upgrade libstdc++6

回滚VSCode版本

然后安耐住不要升级。
下载链接

其它异常情况

基本都是临时文件的问题,清理清理,重启就可以。

vscode服务文件问题

在远程主机的用户目录下,删除vscode的文件,再重试,有时候能解决问题。

rm -rf ~/.vscode-sever

本地known_hosts问题

有时候ssh报错是因为远程主机重装等原因,导致远程主机指纹发生变化,·ssh链接时会报错。
此时应该进入~/.ssh/know_hosts文件中,通过远程主机IP找到记录,删除。
暴力点也可以直接删除known_hosts文件解决。

远程主机本地盘满

有的时候是因为本地盘满,导致远程服务无法开启。
此时需要查看系统的硬盘是否满,清理下。

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: