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

news2025/3/11 11:20:54

本文是在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.coloradmin.cn/o/2313181.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C语言每日一练——day_3(快速上手C语言)

引言 针对初学者,每日练习几个题,快速上手C语言。第三天。(会连续更新) 采用在线OJ的形式 什么是在线OJ? 在线判题系统(英语:Online Judge,缩写OJ)是一种在编程竞赛中用…

PostgreSQL - Windows PostgreSQL 下载与安装

Windows PostgreSQL 下载与安装 1、PostgreSQL 下载 下载地址:https://www.enterprisedb.com/downloads/postgres-postgresql-downloads 2、PostgreSQL 安装 启动安装程序 -> 点击 【Next】 指定安装路径 -> 点击 【Next】 默认勾选 -> 点击 【Next】 指…

JVM 的主要组成部分及其作用?

创作内容丰富的干货文章很费心力,感谢点过此文章的读者,点一个关注鼓励一下作者,激励他分享更多的精彩好文,谢谢大家! JVM包含两个子系统和两个组件,两个子系统为Class loader(类装载)、Execution engine(执…

华为eNSP:配置P2P网络类型

一、什么是P2P网络类型 P2P(Point-to-Point)网络类型 是 OSPF(开放最短路径优先)协议中的一种网络类型,用于描述两个路由器之间直接相连的点对点链路。P2P 网络类型通常用于串行链路(如 PPP 或 HDLC 封装&…

通过数据集微调LLM后怎么调用

通过数据集微调LLM后怎么调用 1. 导入必要的库 from transformers import AutoTokenizer, AutoModelForCausalLMAutoTokenizer:这是 transformers 库中的一个实用类,它能够根据指定的模型名称或路径自动选择合适的分词器。分词器的主要作用是将输入的文本字符串转换为模型可…

thinkphp+mysql+cast解决text类型字段的文本型数字排序错误的方法 - 数据库文本字段排序ASC、DESC的失效问题

TP中使用cast order $lists AmdCommonTable::where(..............) ->field(*,CAST(w6 AS UNSIGNED) as sort) ->order(sort, asc) ->select() ->toArray(); 先转换为数字,再order by 效果对比 (1/2) 不ok - 直接order by 某字段 asc - 只能按照文本…

【Manus资料合集】激活码内测渠道+《Manus Al:Agent应用的ChatGPT时刻》(附资源)

DeepSeek 之后,又一个AI沸腾,冲击的不仅仅是通用大模型。 ——全球首款通用AI Agent的破圈启示录 2025年3月6日凌晨,全球AI圈被一款名为Manus的产品彻底点燃。由Monica团队(隶属中国夜莺科技)推出的“全球首款通用AI…

C++----红黑树map和set的封装

一、红黑树 1.概念 红黑树,是一种二叉搜索树,但在每个结点上增加一个存储位表示结点的颜色,可以是Red或Black。 通过对任何一条从根到叶子的路径上各个结点着色方式的限制,红黑树确保没有一条路径会比其他路径长出2倍&#xff0…

【报错】微信小程序预览报错”60001“

1.问题描述 我在微信开发者工具写小程序时,使用http://localhost:8080是可以请求成功的,数据全都可以无报错,但是点击【预览】,用手机扫描二维码浏览时,发现前端图片无返回且报错60001(打开开发者模式查看日…

软考 数据通信基础——信道

信道特性 带宽 在模拟信号里频率的差,表示信道能通过的频率 在数字信号里表示最大传输速率,单位用bit/s 通常用W表示 波特率 即码元速率,码元可看作一个时间周期 码元速率B2W也可写成B1/T 码元种类n和码元信息量个数N存在以下关系 Nl…

Docker数据管理,端口映射与容器互联

1.Docker 数据管理 在生产环境中使用 Docker,往往需要对数据进行持久化,或者需要在多个容器之间进行数据共享,这必然涉及容器的数据管理操作。 容器中的管理数据主要有两种方式: 数据卷(Data Volumns)&a…

部署前后端项目

部署项目 liunx 软件安装 软件安装方式 在Linux系统中,安装软件的方式主要有四种,这四种安装方式的特点如下: 建议nginx、MySQL、Redis等等使用docker安装,会很便捷,这里只演示JDK、ngxin手动的安装 安装JDK 上述我…

1256:献给阿尔吉侬的花束--BFS多组输入--memset

1256:献给阿尔吉侬的花束--BFS多组输入--memset 题目 解析代码【结构体】用book标记且计步数的代码[非结构体法] 题目 解析 标准的BFS题目,在多组输入中要做的就是先找到这一组的起点和终点,然后将其传给bfs,在多组输入中最易忘记…

【JavaEE】SpringBoot快速上手,探秘 Spring Boot,搭建 Java 项目的智慧脚手架

1.Spring Boot介绍 在学习SpringBoot之前, 我们先来认识⼀下Spring ,我们看下Spring官⽅的介绍 可以看到,Spring让Java程序更加快速, 简单和安全。 Spring对于速度、简单性和⽣产⼒的关注使其成为世界上最流⾏的Java框架。 Spring官⽅提供了很多开源的…

【C】初阶数据结构9 -- 直接插入排序

前面我们学习了数据结构二叉树,接下来我们将开启一个新的章节,那就是在日常生活中经常会用到的排序算法。 所谓排序算法就是给你一堆数据,让你从小到大(或从大到小)的将这些数据排成一个有序的序列(这些数据…

Lottie与LottieFiles:快速为前端Web开发注入精美动画的利器

目录 Lottie与LottieFiles:快速为前端Web开发注入精美动画的利器 一、Lottie是什么?从GIF到JSON的动画技术演进 1、传统动画臃肿的Gif 2、Lottie的突破性创新 二、Lottie的核心组件解析(Lottie的技术架构) 1、Lottie核心三要…

音乐API

https://neteasecloudmusicapi.vercel.app/docs/#/https://neteasecloudmusicapi.vercel.app/docs/#/ 使用实例 所有榜单内容摘要 说明 : 调用此接口,可获取所有榜单内容摘要 接口地址 : /toplist/detail 调用例子 : /toplist/detail 获取歌单所有歌曲 说明 : 由于网易云…

从零搭建微服务项目Pro(第3-1章——本地/OSS图片文件存取)

前言: 在小型demo项目中,一般将图片音频等字节流文件存放本地数据库,但企业级项目中,由于数据量容量有限,需要借助OSS来管理大规模文件。 OSS(对象存储服务,Object Storage Service&#xff0…

游戏引擎学习第147天

仓库:https://gitee.com/mrxiao_com/2d_game_3 上一集回顾 具体来说,我们通过隐式计算来解决问题,而不是像数字微分分析器那样逐步增加数据。我们已经涵盖了这个部分,并计划继续处理音量问题。不过,实际上我们现在不需要继续处理…

Spring boot启动原理及相关组件

优质博文:IT-BLOG-CN 一、Spring Boot应用启动 一个Spring Boot应用的启动通常如下: SpringBootApplication Slf4j public class ApplicationMain {public static void main(String[] args) {ConfigurableApplicationContext ctx SpringApplication.…