无网络机器上,win下vscode客户端通过ssh连接linux服务器

news/2024/5/20 15:11:53/文章来源:https://blog.csdn.net/cly141220010/article/details/127428936

目录

参考文献

前言

下载安装VSCode

下载

安装

下载和安装必要的VSCode插件

下载

安装

客户端通过ssh远程连接linux服务器

下载并安装ssh

远程连接linux服务器


参考文献

Windows使用VSCode远程Linux(ConteOS)开发/调试C/C++(超详细)_zy_workjob的博客-CSDN博客

VScode安装离线插件_栀虞子的博客-CSDN博客_vscode离线安装插件

vscode远程连接服务器问题汇总_COHREZ的博客-CSDN博客_could not establish connection to xhr failed

前言

在无网络的机器上安装任何软件都是麻烦的,因为你不知道安装过程中还会不会有对网络的需求。

网上的教程有些比较老,而导致没法解决过程中遇到的问题。

本文专门针对网络环境下vscode通过ssh远程连接linux服务器并进行开发调试做一个介绍。

下载安装VSCode

下载

找一台能联网的机器,打开vscode官网下载win下vscode客户端对应安装包。

VSCode官网:Visual Studio Code - Code Editing. Redefined

在Download界面下,可以看到win下的客户端有多个,根据需要下载。

其中System Installer和User Installer的区别在于安装到根目录下还是当前用户目录下。 

没有管理员权限的账户应当下载User Installers的版本,有管理员权限的账户建议下载Sytem Installer的版本。

其中64 bit、32 bit、arm就是不同的机器指令集架构了,现在一般都是64位机,选择64 bit就行。

安装

将下载好的安装包转移到需要安装VSCode客户端的机器上。

按正常软件安装步骤安装即可。

有一步选择附加任务中,我建议全都下面五项勾上。(如果勾选了“添加到PATH”,则安装完需要重启一下电脑)

 安装细节可以参考:VScode安装教程(超详细版)_8号葫芦娃的博客-CSDN博客_vscode安装

下载和安装必要的VSCode插件

下载

因为是离线机器,所以vscode插件无法在线自动下载并安装。需要自己在可以联网的机器上下载好这些插件再转移过去并安装。

VSCode官方插件库:Extensions for Visual Studio family of products | Visual Studio Marketplace

我需要用到C++语言,需要ssh来远程连接linux服务器,还希望客户端语言是中文的。

因此需要下载下面几个插件

C/C++(VSCode中运行C++必须):C/C++ - Visual Studio Marketplace

Remote-SSH(ssh远程连接必须):Remote - SSH - Visual Studio Marketplace

Remote - SSH: Editing Configuration Files(这个不一定是必须的,我也不确定):Remote - SSH: Editing Configuration Files - Visual Studio Marketplace

Chinese (Simplified) (简体中文) Language Pack for Visual Studio Code(需要中文客户端的则下载):Chinese (Simplified) (简体中文) Language Pack for Visual Studio Code - Visual Studio Marketplace

网页上下载按钮比较不明显,在右侧有个Download Extension按钮,可参考下图找到。其中C/C++针对不同机器有不同版本,选择适合自己的,我这里选择Windows x64。

所有插件以vsix为文件后缀。

安装

将下载好的插件转移到需要安装的机器上的任意位置。

打开VSCode,根据如下图所示步骤找到对应插件并离线安装

在这里插入图片描述

 该过程应该没有任何问题。

其中中文插件安装完需要重启生效。

如果remote-ssh和Remote - SSH: Editing Configuration Files安装出现问题,可能是没有ssh的原因,可以先参考本文后面的内容先下载并安装openssh。

客户端通过ssh远程连接linux服务器

下载并安装ssh

本人机器上原来就有ssh,应该是之前装其他软件时自动装上的。如果你的机器上没有,可以参考下面文章来下载并安装openssh。

Windows使用VSCode远程Linux(ConteOS)开发/调试C/C++(超详细)_zy_workjob的博客-CSDN博客

远程连接linux服务器

这部分就是最坑的部分了。

前置条件:要连的linux服务器可以通过ssh连接。

刚开始的连接过程可以参考下面两个文章,两篇文章分别提供了不同的连接方案。第二篇文章还包括了免密登录的内容。

Windows使用VSCode远程Linux(ConteOS)开发/调试C/C++(超详细)_zy_workjob的博客-CSDN博客

基于VSCode的C++远程开发环境搭建教程(Win10) - 时间的风景 - 博客园

由于这两篇文章都是在联网条件下的,所以在ssh远程连接时会遇到一些报错,导致无法连接的情况。

下面解释下报错原因和解决方案。

原因:

我遇到的报错一般有两种:

Could not establish connection to : XHR failed.

或者只报无法连接,没有报具体原因。

基本上都是无法联网导致的。

在remote-ssh连接服务器的过程中,会在linux用户目录下下载安装vscode服务端。大概过程为,创建一个.vscode-server文件夹,该文件夹下有个bin,里面放了一个以commit id命名的文件夹,该文件夹下有两个文件,其中一个文件名叫vscode-server.tar.gz。

这两个文件其实都是半成品,是remote-ssh想下载又下载不下来导致的。

remote-ssh的执行脚本位置为win中C:\Users\用户名\.vscode\extensions\ms-vscode-remote.remote-ssh-0.90.1\out\extension.js,里面有段语句包含了强制下载过程。

(我的踩坑点是参考了这篇文章Linux(Ubuntu18.04)使用VScode连接ssh主机时报错XHR(wget download failed)解决方法_程序猿_琦玉的博客-CSDN博客

这篇文章中的方法以及其参考的文章的方法我都试过了,没能成功,要么改得脚本语法错误,要么仍然执行失败。厉害的大佬可以去尝试改进下脚本。

解决方案:

参考下面这篇文章vscode远程连接服务器问题汇总_COHREZ的博客-CSDN博客_could not establish connection to xhr failed

中问题2的方案即可。

为防止链接失效,我这边再写一下。

步骤一:查看commit id,在本地的vscode的关于中查找

请添加图片描述 

其中提交后的一串英文和数字即为commit id,或者登陆到服务器$HOME文件夹中,ls -a查看隐藏目录$HOME/.vscode-server/bin下的文件夹名称
步骤二:在该链接下手动下载server的压缩包vscode-server-linux-x64.tar.gz

https://update.code.visualstudio.com/commit:${COMMIT_ID}/server-linux-x64/stable

注意将${COMMIT_ID}替换为刚刚查到的commit id。

实际上vscode版本还分stable和insider的,vscode为蓝色图标的为stable版,绿色图标的为insider版。insider版需要将上述链接最后的stable改成insider。

步骤三:自己找一个传输软件,上传该压缩包到linux服务器的这个目录下~/.vscode-server/bin

步骤四:解压,并更改解压文件夹名字

cd ~/.vscode-server/bin
tar -zxf vscode-server-linux-x64.tar.gz
mv vscode-server-linux-x64 ${COMMIT_ID}

然后尝试重新连接,即可解决问题 。

接下来就可以在vscode左上角的资源管理器里打开linux上项目文件夹进行读、写、debug了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_404340.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

是真是假,AI可根据声音检测是否感染新冠 准确率达89%

据媒体报道,近日,在西班牙巴塞罗那举行的欧洲呼吸学会国际会议上公布的一项研究显示,AI可通过手机应用程序从人们声音中检测出新冠肺炎感染,其准确率达到89%。 新冠肺炎感染通常会影响上呼吸道和声带,导致一个人的声音…

No6.从零搭建spring-cloud-alibaba微服务框架,实现fegin、gateway、springevent等(一)

代码地址与接口看总目录:【学习笔记】记录冷冷-pig项目的学习过程,大概包括Authorization Server、springcloud、Mybatis Plus~~~_清晨敲代码的博客-CSDN博客 之前只零碎的学习过spring-cloud-alibaba,并没有全面了解过,这次学习p…

React+fetch 发送post请求 处理请求头参数配置

观看本文前 你要对fetch有一些了解 如果不了解可以先查看我的文章 React之初识fetch 通过fetch发送一个简单GET请求 然后我们来看 pust基本语法 fetch("请求地址",{method: post,headers: {Content-Type: application/json,"Authorization": "Bearer…

传统的回调函数与 ES6中的promise回调以及 ES7 的async/await终极的异步同步化

目录 传统的回调函数封装 ES6中的promise 异步同步化(终极) 传统的回调函数封装 js中的回调函数的理解:回调函数就是传递一个参数化函数,就是将这个函数作为一个参数传到另外一个主函数里面,当那个主函数执行完之后…

ACM MM 2022 Oral | PRVR: 新的文本到视频跨模态检索子任务

作者: 陈先客方向: 跨模态检索学校: 浙江工商大学概览本文介绍一篇ACM MM 2022 Oral的工作。基于传统的跨模态文本-视频检索(Video-to-Text Retrieval, T2VR)任务,该工作提出了一个全新的文本到视频跨模态检索子任务,即部分相关的视频检索(Partially Rel…

vue动态换肤(自定义主题)

前言 有时候一个项目的主题并不能满足所有人的审美, 所以这个时候就需要换肤功能登场了。 下面是一个换肤demo, 思路很简单,定义一个全局css变量,然后在页面根元素获取变量并动态修改这个变量值即可完成。 效果 具体实现 1.准备项目 准备一个含有less、…

什么是开源工作流框架?有什么特点?

在大数据时代,开源工作流框架也成为大家提升办公效率的利器软件之一。那么,什么是开源工作流框架?又有哪些特点?作为低代码平台服务商,流辰信息有责任和义务潜心研发更多优良的软件产品,为各大中型企业提升…

外汇天眼:ThinkMarkets 获得 CySEC 许可证,允许其从塞浦路斯扩展其欧盟服务

澳大利亚零售外汇和差价合约经纪商ThinkMarkets收购了一家获得CySEC许可的公司,并获得了其 CIF 许可证。它正在积极提高其塞浦路斯办事处为欧盟客户服务的能力。 与许多其他经纪人一样,ThinkMarkets过去通过总部位于伦敦并获得 FCA 许可的 TF Global Mar…

使用 RNN 模型从零实现 情感分类(详解)

文章目录说明思路Step1:读取数据集Step2:生成 tokens 数组Step3:使用 Word2Vec 生成词向量Step4:将 tokens 内的词语转化为向量索引Step5:生成训练集与测试集Step6:构建 RNN 循环神经模型Step7:…

助力企业转型,华为云CDN值得期待!

助力企业转型,华为云CDN值得期待! 在数字化转型的潮流中,传统的门户网站已经不能适应新时代发展要求。随着云计算、大数据等新一代信息技术与行业深度融合,以电子商务、社交网络、移动应用为代表的新兴领域正在崛起,并成为推动整…

从“数据”到“引擎”,蜂鸟视图室内外一体化解决方案全新升级

伴随着时代科技的风口和数字化经济的发展,空间可视化在智慧城市、智慧社区、智慧楼宇、智慧工地、智慧园区等项目中的重要性日趋凸显。 近日,围绕“打破边界 联动交互”的主题,蜂鸟视图发布了由外到内,空间不再“割裂”的室内外…

在外打工学什么技术有前景?

在外打工学什么技术有前景?偶然在头条上看见过这样一个问题“打工打的心慌,不打工有什么路可以选择?”从这个问题里就能看出很多的情绪,在外打工所受的委屈与处于社会底层的轻视,不仅工资低,并且看不见前景…

Uniapp零基础开发学习笔记(4) -顶部导航栏titleNView的制作

Uniapp零基础开发学习笔记(4) -顶部导航栏titleNView的制作 制作顶部导航栏titleNView的过程。 1.官网上关于顶部导航栏的介绍 https://uniapp.dcloud.net.cn/collocation/pages.html#app-titlenview 其中关于顶部导航栏的介绍中,有如下的说明: 前端…

Java性能优化指南,Alibaba内部手册,让你的程序又快又稳

前不久公司新入职了一个从阿里出来的同事,本以为能跟着学习一下大厂的经验,没想到被反秀了一手! 事情是这样的: 入职的第一天,这位仁兄就开始了自愿加班,我们虽然反感但还是没说什么,公司也没…

IntelliJ IDEA常用插件及安装步骤

插件安装方法 插件官网地址 https://plugins.jetbrains.com/ IDEA在线安装插件 File–> Settings --> Plugins IDEA离线安装插件 从官网下载zip包idea选择从本地安装 IntelliJ IDEA常用插件 IDEA中有很多功能强大的插件,下面列举一些,我们在…

Java --- JVM的常量池与运行时常量池

目录 一、常量池 二、常量池的作用 二、运行时常量池 一、常量池 一个有效的字节码文件中除了包含类的版本信息、字段、方法以及接口等描述信息外,还包含一项信息那就是常量池表(Constant Pool Table),包括各种字面量和对类型、域和方法的符号引用。 …

X86实模式与保护模式简介

0 引言 从80386开始,CPU有三种工作方式:实模式,保护模式和虚拟8086模式(v86模式)。只有在刚刚启动的时候是real-mode,等到操作系统运行起来以后就切换到protected-mode。实模式只能访问地址在1M以下的内存称为常规内存&#xff0…

读懂NFT地板价

简单来说,NFT地板价就是某一NFT系列中的最低价格。 本文将与大家分享以下内容: NFT地板价的目的。 NFT地板价的基本计算方法。 设置NFT地板价的其他因素。 NFT地板价的高级计算方法。 标准化的NFT地板价如何将DeFi和NFT更紧密地结合在一起。 NFT地…

【novelai】colab存档

本笔记由此改写而成: https://colab.research.google.com/drive/1kw3egmSn-KgWsikYvOMjJkVDsPLjEMzl https://colab.research.google.com/drive/1AfAmwLMd_Vx33O9IwY2TmO9wKZ8ABRRa 感谢大佬们的贡献 最终成果如下: https://blog.csdn.net/Algernon98/article/det…

java IO流【常用流对象一】

文章目录常用流对象1 文件字节流1.1 文件字节输入、输出流1.2 通过缓冲区提高读写效率1.2.1 方式一1.2.2 方式二1.3 通过字节缓冲流提高读写速率1.4 定义文件拷贝工具类2 文件字符流2.1 文件字符输入流2.2 文件字符输出流2.3 使用字符流实现文本文件的拷贝处理常用流对象 1 文…