当前位置: 首页 > news >正文

使用VS Code remote ssh进行远程开发的笔记

本文是在VS Code中使用 remote ssh 进行开发的笔记。

安装插件

打开VS Code,在扩展区找到remote相关插件,安装之。下图中红色框出来的是已经安装了的插件(圆圈处即为Remote Explorer)。
在这里插入图片描述

实践

连接服务器

新建连接:
在这里插入图片描述

输入ssh登陆信息,回车,会提示有保存的配置文件。 (注:笔者已在windows系统设置ssh免密码登陆远程服务器)
在这里插入图片描述

配置文件(注:Host可改为易于理解记忆的文字。):
在这里插入图片描述

在当前窗口打开(注:此处SSH连接名称已变化了):
在这里插入图片描述

选择操作系统为Linux:
在这里插入图片描述

开始在远程服务器安装VS Code Server
在这里插入图片描述

如果网络不畅通或出错,此步骤会失败。参考后文使用离线方法安装。

如果安装成功,并能正常运行,则有如下提示,点击“Allow”。
在这里插入图片描述

打开远程服务器工程目录

点击“Open Folder”打开远程服务器目录。

在这里插入图片描述

可用鼠标导航到所需目录,以下是选择最终目录的截图。

在这里插入图片描述

点击“OK”完成。即可看到远程服务器c_test目录内容。

在这里插入图片描述

开发示例

使用Ctrl+~打开远程服务器的终端,默认已在目标目录,可进行编译、运行操作。

以下是一次编译和运行的示例:

在这里插入图片描述

其它操作

关闭远程连接:
在这里插入图片描述

小结

下面是笔者的使用心得:

  • 使用remote-ssh开发,与本地开发没有什么差异。
  • 连接过一次后,VS Code会记录工程信息,方便下次访问开发。
  • 本文是用笔者虚拟机作示例的。之前是通过虚拟机挂载目录方式,在本地VS Code打开本地工程,再在虚拟机内编译运行。使用此方法,可以直接将工程放到虚拟机内。
  • 值得说明的是,笔者并没有将工程放到虚拟机内部的习惯,一来,虚拟机体积日益增加(一个centos占了近100GB,一个xp占了近80GB),笔者硬盘已告急。二来,查看代码修改记录也不方便。
  • 但是,本文所涉及的方法,不失为一种跨平台开发的好方法。笔者就使用这种方法,远程解决一个arm平台的bug。首先,通过远程工具连接到服务器,在上面下载工程代码,再在VS Code用remote-ssh打开工程,添加调试信息,再在VS Code终端执行docker编译容器进行编译,再用scp拷贝到内网的arm平台机器上运行。描述虽多,但基本上在一个工具内可完成上述操作,十分方便。

离线安装 VS Code Server

VS Code需要在远程服务器安装VS Code Server方可实现远程开发。

先在 VS Code的Help-> About中查看commit号,按如下格式组装地址(笔者远程服务器是X86,本地commit号是fabdb6a30b49f79a7aba0f2ad9df9b399473380f):

https://vscode.download.prss.microsoft.com/dbazure/download/stable/fabdb6a30b49f79a7aba0f2ad9df9b399473380f/vscode-server-linux-x64.tar.gz
https://vscode.download.prss.microsoft.com/dbazure/download/stable/fabdb6a30b49f79a7aba0f2ad9df9b399473380f/vscode_cli_alpine_x64_cli.tar.gz

下载得到如下2个文件:

vscode-server-linux-x64.tar.gz
scode_cli_alpine_x64_cli.tar.gz  

再在远程服务器创建目录.vscode-server,拷贝下载的文件到该目录。

$ mkdir ~/.vscode-server/
$ cd ~/.vscode-server/
$ ls
vscode_cli_alpine_x64_cli.tar.gz  vscode-server-linux-x64.tar.gz

VS Code Server有一定的目录格式要求,执行命令如下:

$ mkdir -p  cli/servers/Stable-fabdb6a30b49f79a7aba0f2ad9df9b399473380f/
$ mv vscode-server-linux-x64 server
$ mv server/ cli/servers/Stable-fabdb6a30b49f79a7aba0f2ad9df9b399473380f/

$ tar xf vscode_cli_alpine_x64_cli.tar.gz
$ mv code code-fabdb6a30b49f79a7aba0f2ad9df9b399473380f

说明:对于vscode-server-linux-x64.tar.gz,解压得到的是目录,改名为server,拷贝到.vscode-server/cli/servers/Stable-${commit_id}/目录下。对于vscode_cli_alpine_x64_cli.tar.gz,解压得到的是文件,将其命名为code-${commit_id}

参考资源

https://www.cnblogs.com/qiuhlee/p/17729647.html

http://www.dtcms.com/a/61431.html

相关文章:

  • UI自动化:Selenium常规的页面元素定位方法
  • golang从入门到做牛马:第十二篇-Go语言数组:数据的“有序集合”
  • LangChain使用总结-第二章
  • webshell一些上传心得
  • 【Java 面试 八股文】计算机网络篇
  • 大模型工具Ollama存在安全风险
  • LeetCode - #225 使用两个队列实现 LIFO 栈
  • Windows中在VSCode/Cursor上通过CMake或launch文件配置CUDA编程环境
  • react使用拖拽,缩放组件,采用react-rnd解决 -完整版
  • gbase8s rss集群通信流程
  • 前端(vue)学习笔记(CLASS 3):生命周期工程化开发入门
  • 物联网中设备异构的问题-甚至可以用工业数据采集器?
  • 深度评测DeepSeek、ChatGPT O1和谷歌Gemini AI应用开发场景 - DeepSeek性能完胜!
  • HTML左右分页2【搬代码】
  • labview实现16进制数据相加取反,取低16位校验
  • 【JavaEE】线程池
  • 人工智能的发展历史
  • OSPF-单区域的配置
  • Python 入
  • (openstack搭建)openstack云平台部署-详细完整教程
  • 【每日学点HarmonyOS Next知识】对话框去掉圆角、数组拼接、自定义对话框依附某个控件、平移动画、页面栈管理
  • (二)企业级监控系统 - ZABBIX 部署
  • STM32-SPI通信协议
  • Visual Studio Code 基本使用指南
  • Ultravox:融合whisper+llama实现audio2text交互
  • 三维仿射变换矩阵
  • 安裝do時出現log file support is not available
  • 【软件测试开发】:软件测试常用函数1.0(C++)
  • 『PostgreSQL』 Ubuntu 系统下PG15的安装与 PGVector 配置指南
  • 在本地部署DeepSeek等大模型时,需警惕的潜在安全风险