【Windows】Windows通过remote ssh远程访问Linux服务器时出现XHR failed并且需要重复输入密码

背景

VS code 在安装remote ssh插件之后就可以远程ssh访问Linux服务器,可以方便的对文件内容进行增删改查移动复制等操作。


问题

有时候我们直接通过ssh可以连接到服务器,但是通过VS code 进行远程ssh访问会失败,提示信息为Could not establish connection to : 192.168.10.233 XHR failed。重试之后仍然如此,删除本地known_hosts文件也没有效果。工具栏help- check for updates确认已是最新版。


分析

注意到每次输入密码后VS codeoutput的日志信息中除了Resolver error: Error: XHR failedscode外,还会出现一个关键词wget,经查阅这是一种网络下载工作,所以怀疑是Linux服务器本身没有办法去访问特定网络导致的。(比如有的机器只能内网访问,就无法成功联网下载任何互联网文件)
查阅官方文档What are the connectivity requirements for the VS Code Server when it is running on a remote machine / VM?可知,Linux服务器需要支持访问互联网。
所以这可能就是通过VS code 进行远程ssh访问会失败的原因,修改Linux服务器的网络访问权限风险较高涉及跨部门沟通以及合规等问题,是否有手动解决的方案?


解决方案

查阅相关资料并验证有效,手动执行如下步骤即可解决。
1 VS code 的工具栏 help-about 找到commit那一条,我的是af28b32d7e553898b2a91af498b1fb666fdebe0c
2 Linux服务器通过指令 cd ~/.vscode-server/bin 跳转到本地commits路径。指令ll可以看到有af28b32d7e553898b2a91af498b1fb666fdebe0c存在。但是其空间占用为0
3 在可以访问互联网的机器上(windows和mac也可以),访问https://update.code.visualstudio.com/commit:af28b32d7e553898b2a91af498b1fb666fdebe0c/server-linux-x64/stable下载我们所需的文件。也可以访问https://vscode.cdn.azure.cn/stable/af28b32d7e553898b2a91af498b1fb666fdebe0c/vscode-server-linux-x64.tar.gz下载,不过这个链接可能拿不到最新的版本。
4 将上述文件丢到Linux的~/.vscode-server/bin/af28b32d7e553898b2a91af498b1fb666fdebe0c目录下,并在该目录下执行chmod -R 777 *,以及tar zxvf vscode-server-linux-x64.tar.gzmv vscode-server-linux-x64/* .
5 删除Windows本地的known_hosts文件中该Linux服务器对应记录即可访问成功。


结论

Windows通过remote ssh远程访问Linux服务器时出现XHR failed并且需要重复输入密码的情况,大概率是Linux服务器访问不了互联网环境下载特定包失败。此时只要在可访问机器上下载后手动完成文件加载即可。

  • 8
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值