本文共 2186 字,大约阅读时间需要 7 分钟。
今天和大家分享一个远程开发解决方案,聊聊我平时是如何用 VS Code 进行远程开发工作的,以及如何一步步搭建远程开发环境,拥有比德芙还丝滑的远程开发体验。
我们厂里为了最大程度提高工程师生产力,各种研发配套工具非常齐全。对开发人员每人都有一台云主机,而且是个人主机哦,申请就有的那种。有了云开发主机在家里或者在公司都可以随便折腾,加班也更方便了。
传统的远程开发大家都知道,我是从事后台服务器开发工作的,主力语言是 C/C++。我们的服务端程序一般都是跑在 Linux 服务器上面,传统的开发流程是在 window 或 Mac 的 IDE 环境编写代码,然后用 ftp 或 sync 同步代码到开发机上编译,程序或服务最终发布到测试或生产环境运行。
就我来说,以前是这么干的:在本地 Windows 和 Linux 云开发机之间开启一个同步程序,本地编辑代码,实时后台同步到 Linux 云开发机,然后用 xshell 登录开发机编译、调试,这个过程有点不够优雅,现在有更香的解决方案。
更香的远程开发
介绍下 VS Code
这是一款开源编辑器,却不止是编辑器。VS Code 是由微软开发的一款支持 Windows、Linux 和 macOS 等操作系统的代码编辑器,同时开放源代码。它不仅支持 Git 版本控制功能,还内置了代码补全、代码片段和代码重构等功能。另外,VS Code 的插件能力绝对是其最大的亮点,几乎想要啥功能都能找到插件支持。
在 2019 年的 Stack Overflow 组织的开发者调研中,VS Code 被认为是最受开发者欢迎的开发环境。据调查,87317 名受访者中有 50.7% 的受访者声称正在使用 VS Code。
重点来了,今天的主角功能是下面这个远程开发扩展插件。微软在 PyCon 2019 大会上发布了 VS Code 远程开发插件,从 1.35.0 版本开始提供可以在本地编辑远程开发环境的文件的功能,需要确保你的 VS Code 版本是在这个之上的才能体验到。
VS Code 远程开发的工作原理大致是这样的:
如何配置
配置 SSH 环境变量
远程开发本地 VS Code 用 SSH 协议与远程服务端通信,所以要先配置 SSH 环境变量。由于 Git 自带 SSH 客户端程序,可以直接使用它作为 SSH 客户端。
安装远程开发插件
要能连上远程主机,首先需要下载 VS Code 远程开发插件。VS Code 提供了一个远程开发插件包,包括 Remote - SSH、Remote - Containers 和 Remote - WSL 三个插件。我们这里连接的是云主机,选择安装 Remote - SSH 插件即可。
配置远程连接
打开软件的扩展界面,搜索 Remote 开头的插件,也能看到这三个的不同远程开发插件,我们这里连接的是云主机,选择安装 Remote - SSH 插件安装即可。
修改 SSH 配置文件,用于登录远程机器,各项含义在图中有说明。
点击连接,登录远程服务器,需要输入几次远程服务器的密码(后面会教你怎么免密登录),输入确认即可。第一次连接会做 VS Code Server 的初始化工作比较慢,耐心等待。
登录成功后,即可像操作本地环境一样,在 VS Code 客户端操作远程云主机上的文件。注意,打开文件夹已经是远端机器上的目录结构了。
给远程 VS Code 安装插件。安装的插件是在云服务器的 VS Code 上安装的,对本机的 VS Code 没有影响,插件在远端提供功能,比如代码审查、自动补齐等等,而这所有的一切就像在本地操作一样,对文件的更改也是直接操作的云主机上的文件,丝滑连接。
代码编辑与远程终端调试。打开文件编辑的是云服务器的文件,同时可以打开云服务终端,直接在终端操作编译或者查看云服务器信息。
配置 SSH 免密登录
按照上面的配置步骤,每次连接到远程服务器都需要输入服务器登录密码很麻烦,可以配置 SSH 免密登录,免去每次输入密码的烦恼。具体操作步骤如下:
打开 win cmd 终端,输入 ssh-keygen -t rsa 生成秘钥对。
打开生成的秘钥保存路径,拷贝 id_rsa.pub 内容,添加到到云服务器的 ~/.ssh/authorized_keys 文件后面。
尝试再次连接,不用输密码了,享受开发吧!
这套远程开发环境体验下来,我整体是比较满意的。最大的好处是不用给电脑装太多软件,选择 VS Code 是因为需要经常在 C++/Python/Go 三种 IDE 之间切换比较麻烦,现在即使是电脑配置低点都没关系,因为所有的编辑器插件扩展和代码都在云端,通过 SSH 连接操作一个 VS Code 打遍所有。
而且由于远程开发插件的存在,不论我在哪里,只要有电脑都能方便地打开云端开发环境,非常的方便,这么好用的工具大幅提升生产力,所以今天来分享给大家。
老规矩。感谢各位的阅读。文章的目的是分享对知识的理解,技术类文章我都会反复求证以求最大程度保证准确性。如果文中出现明显纰漏也欢迎指出,我们一起在探讨中学习。
欢迎关注我的公众号“五分钟学算法”,如果喜欢,麻烦点一下“在看”~
转载地址:http://mvqqz.baihongyu.com/