【VScode】无法建立ssh连接问题

问题描述

        不知道是不是版本升级的原因,昨天刚更新完的vscode,今天去新连接一个实验室的服务器后就出现了如下问题:

        软件内容反馈的信息如下:

解决方案一:版本更新导致的问题

         主要参考文章:

        【知乎文章:vscode 1.86版本远程ssh不兼容旧服务器问题解决 - 知乎

        文章中说了两种方法,一种是采用安装portable便携绿色版vscode以与最新版的兼容(操作太麻烦了,我没采用);另一种是回退vscode的版本,具体参考链接【回退VSCODE参考_1】进行。

但是弄完之后,通过在终端执行如下代码查看具体VSCODE版本

code --verison

回退后,还是失败了。 

解决方案二:插件的设置问题

        【方案二

        修改【remote ssh】插件的【loacl ..server】。修改后没有什么效果,还是报错

解决方案三:降低VScode版本

        【方案三-低版本安装地址】优快云中好多链接都说是1.99版本更新的问题,所以就尝试参考【链接三-安装事宜】安装。但是安装完后,还是显示失败(安装完重启后再试也不管用)。

        其中,查看VScode版本的代码:

code --version

         【补充】也可安装 可兼容的低版本的便捷版本的vscode【低版本Portable Vscode】。这样不用卸载原来版本的vscode。但是,下载的时候可能要翻墙。

解决方案四:服务器端的基础配置问题

尝试删除相应文件夹并重新配置

        【方案四-1】尝试删除客户端和服务端的各种文件并尝试重新运行,包括但不限于服务端的【vscode-server文件夹】、客户端的【.ssh文件夹】和【.vscode文件夹】等。最后重新连接测试,还是失败。

尝试检查各种基础插件版本

Remote host / container / WSL Linux prerequisites

        错误报告里面给了两个参考的链接,于是选择其中一个链接中给定标准和代码进行版本检测。链接中给了如下标准:

        1、执行代码【ldd --version】,检测【GLIBC】版本。结果显示,符合标准

        2、执行代码【dpkg -l libstdc++6】,检测【libstdc++6】版本。结果显示,符合符合标准

         3、执行代码【dpkg -s  ca-certificates | grep Version】(比较正式的查看版本的方式),检测【libstdc++6】版本。结果显示,符合符合标准

        4、执行代码【dpkg -s  libc6 | grep Version】,检测【libc6 】版本。结果显示,符合符合标准

      5、执行代码【sudo apt-get install -y curl bash gzip tar】,检测【相关基本插件】版本。结果显示,符合符合标准

        总之,涉及到的相关插件都满足要求了,但是测试后还是不通过

尝试检查插件的默认调用路径

        执行代码下面代码,检测插件【libstdc++6】的默认调用路径。

ldconfig -p | grep libstdc++.so.6

      获得下面结果图。

        发现,第一个默认路径是其他软件的安装位置,而不是插件默认安装位置。因此,首先在【~/.bashrc】路径中删除路径:

export PATH=$PATH:/data/ADS_2015/Licensing/2014.07/linux_x86_64/bin

        此外,删除【/etc/ld.so.conf.d】路径下的【ads.conf】文件 。其中,文件中之前加入了【 /data/ADS_2015/Licensing/2014.07/linux_x86_64/bin 】(之前加入的ads仿真用的lmutil工具具体路径)。删除文件后,执行下面代码刷新一下动态链接器缓存(重新开一个终端窗口也可以)

sudo ldconfig

        验证已经完全删除后,再次SSH链接。成功!!!

VSCode远程连接SSH报错无法建立连接,可能存在以下几种情况及解决办法: ### SSH配置问题与密钥不一致 若在命令行使用`ssh [远程服务器用户名]@[远程主机地址]`登录时,因`known_hosts`文件中存储的主机密钥和服务器当前的密钥不一致而报错,可删除该服务器的秘钥信息,下次连接`ssh`时会重新配置最新的秘钥,之后终端通常可连接。不过,此操作后VSCode可能仍无法连接 [^1]。 ### 远程服务器没网导致XHR failed 当报错为“XHR failed”,原因是远程服务器没网,虽然`ssh`能连上远程服务器,但VSCode远程连接会联网下载东西。每个本地VSCode有一个`commit - id`,VSCode连接远程服务器时,需在服务器端下载与本地VSCode版本匹配(`commit - id`匹配)的`vscode - server`。解决思路是手动下载`.vscode - server`所需的包到服务器,具体执行步骤如下: 1. 打开宿主机VSCode -> 帮助 -> 关于,选中复制提交ID。 2. 打开浏览器进入连接`https://update.code.visualstudio.com/commit:COMMIT_ID/server-linux-x64/stable`(将`COMMIT_ID`替换为上面复制的提交ID),浏览器会自动下载。 3. 打开目标环境(Linux环境)命令行进入`.vscode - server`,将下载的包拷贝到`.vscode - server`目录并解压,同时把解压后的内容拷贝到`bin/COMMIT_ID`目录下,若该目录不存在则手动创建。命令示例如下: ```bash mkdir -p ./bin/<COMMIT_ID> tar -zxvf vscode-server-linux-x64.tar.gz mv vscode-server-linux-x64/* bin/<COMMIT_ID>/* ``` 4. 执行以上步骤后,即可用VSCode登录成功 [^2]。 ### 参考已有解决方案 可参考文章“vscode远程调试报错could not establish connection to xhr failed解决方案_xhr failed vscode - 优快云博客”,有人通过此方法解决了问题 [^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值