VSCode的remote-ssh非常方便,可以直接使用公司的Linux开发,无需搭建本地环境,是真正的远程开发。
问题
最近升级vscode后,突然发现无法连上远程主机了。
链接时,会发现不像往常一样快速完成,而是会跳出气泡
点开详情也就能知道原因,是因为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
文件解决。
远程主机本地盘满
有的时候是因为本地盘满,导致远程服务无法开启。
此时需要查看系统的硬盘是否满,清理下。
暂无评论内容