VS Code配置远程服务器插件

本文介绍了vscode代码编辑器配置远程服务器插件的方法。

零、背景

Visual Studio Code(简称vscode)是微软开发的一款极其强大的代码编辑器,其前身是微软团队为Azure云服务设计的web端代码编辑器 monaco editor 。vscode底层采用typescript语言编写,使用electron框架进行用户界面渲染。其速度快,跨平台能力强大,最重要的是由于其底层开发语言是web开发中常用的typescript,vscode对web开发和远程开发都有很好的支持。vscode支持windows、macOS、Linux三大主流桌面端操作系统。

在实验室的科研环境中,常见的一种场景是在远程服务器上运行代码。一种方法是在本地编写好代码后上传到服务器并运行,但这样相当麻烦。另一种方法则是使用代码编辑器的远程开发能力。

常见的代码编辑器如pycharm、visual studio、eclipse等都支持在远程设备上进行开发。然而这些编辑器要么需要付费订阅,要么并不是“通用”编辑器,例如专职开发.NET/C++的visual studio和专职开发java的eclipse对于实验室的日常科研任务(aka. 写python、R、matlab、shell等轻量化脚本语言)来说显得过于笨重。因此,轻巧且开源免费又支持远程开发的vscode就这样进入了我们的视野。

一、准备工作

1、vscode的安装:从vscode官网 下载适合自己系统的安装包,然后点击安装既可。
2、所需插件安装:打开vscode后,点击左侧插件市场,搜索插件名称并安装既可(如下图)。建议安装的插件有三个:

  • Remote - SSH
  • Remote - SSH: Editing Configuration Files
  • Remote Explorer

image.png

一般来说,安装完第一个插件(Remote - SSH)以后,另外两个插件也会自动安装。安装成功后,在本地已安装扩展列表中可以看到这几个插件,如下所示。

5dd6bf333ff4682df5cac411a532dac.png

二、远程服务器配置与登录

(一)ssh登录配置

如果之前已经配置过与服务器间的ssh登录,则可跳过这一小节。

这一步需要满足两个要求:

  1. 远程服务器上安装了sshd 服务。(一般的实验室服务器都会装,所以基本上不用管)
  2. 本地电脑上安装了ssh服务。(一般来说,Windows10/11系统都自带了ssh服务;macOS和Linux基本都自带了ssh

image.png

若要从当前电脑登录远程服务器,需要打开“终端”(或另一个 SSH 应用),然后键入:

ssh username@IP address

例如,如果用户名称为 steve,远程服务器的 IP 地址为 10.1.2.3,可以在另一台电脑上打开“终端”并键入:

ssh steve@10.1.2.3

一般来说,这时程序会提示输入登陆密码。输入的登陆密码是不可见的(也就是说,屏幕上不会有任何密码字符显示,即使密码已经输入)。当输入的密码是正确时,按下回车键,就可以看到成功登录远程服务器的提示了,如下图所示。

image.png

除此之外,还可以在服务器上配置免密登录,省去每次登录都要输入密码的麻烦。免密登录的方法可以参考这篇文章: 《Linux客户机和服务器之间配置免密登录》

(二)vscode远程登陆插件配置

接下来,我们配置vscode上的远程登陆插件。

如下图,在安装完”Remote - SSH”插件以后,vscode左侧栏会出现一个远程资源浏览器的图标,这个图标将用于连接远程服务器。现在,我们点击这个图标,在 REMOTE EXPLORER 里面选择“Remotes (Tunnels/SSH)” 选项,从而切换到SSH登录模式。

image.png

切换完的界面如下。由于此时我们没有添加任何远程服务器,左侧面板中远程服务器的列表是空的。现在点击左侧面板 > REMOTES (TUNNELS/SSH) > SSH 右边的加号“+”,会弹出一个对话框,要求输入登录远程服务器的ssh指令

image.png

在这里输入登录服务器的指令,包括用户名和服务器IP地址,如下。

image.png

随后,vscode会要求用户作出选择,选择更新哪一个ssh配置文件。我们选第一个就好。

image.png

这样就完成了配置。此时再看左侧的远程服务器资源管理面板,可以看到我们刚刚添加的服务器。如下图所示,此时如果我们想要连接到这台服务器上进行工作,直接点击服务器名称右侧的箭头符号“→”既可。

image.png

第一次登录需要的时间可能会有点长,因为vscode会在服务器端安装一些资源,用来支持与本地客户端的通信(所有资源加在一起大约175M左右)。之后,vscode会弹出一个界面,要求选择一个文件夹作为工作目录,如下图所示。这里按照实际工作中的需求选择就行。

image.png

有可能还会弹出下图这种提示,询问是否信任文件作者。服务器上能被我们访问到的基本都是我们自己的文件,这里选择信任(“Yes, I trust the authors”)既可。

image.png

在这以后,我们就可以愉快的码字了。如下图,这里打开的是一个服务器端的文件,但是实际编辑体验就像本地文件一样。在vscode左侧还可以清晰的看到文件列表,从而高效的管理文件。

image.png

值得一提的是,在左边的文件列表上点击右键,可以像在本地一样进行文件管理;此外还可以选择多个文件然后批量下载。

image.png

三、远程服务器上的插件推荐

vscode不仅支持在本地安装插件,还支持在远程服务器上安装插件。这里介绍一些比较推荐的插件组合。

如下图,因为题主日常工作以Python语言和R语言为主,因此在远程服务器上安装的开发与调试插件有下面这几个:Pylance、Python、R、R Debugger。除此之外,日常工作中会产生一些svg格式的图片,因此安装了SVG插件,以方便直接浏览图片。(对于pdf格式的图片,vscode也提供了vscode-pdf插件用于文件预览,不过和SVG插件不同,vscode-pdf插件需要安装在本地客户端)

image.png

下面展示一下使用python插件运行代码的效果(代码窗口右侧有个小箭头“▷”,点击这个小箭头按钮就能一键运行代码)

image.png

vscode支持的编程语言还有很多,例如matlab、fortran等。这些编程语言都有对应的插件(如下图),这为我们在远程服务器上编写软件会带来很大的方便。

最重要的是,这些都是免费且开源的!

image.png

image.png

以上。