目录
参考文献
前言
下载安装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了。