使用VS Code实现校外SSH连接实验室主机(踩坑记录)
丶whimmy
2025年01月22日 12:03
研究生居家科研

放寒假了,回了家还得偶尔干干活

想到要抱着14寸笔记本,用向日葵远程实验室工位电脑跑代码,就替眼睛难受(舍不得花钱开会员提高分辨率)。如果实现SSH连接工位电脑的VSCode可以更舒适地调代码。

通过SSH服务,本地的VSCode就成了一个前端界面,而修改和运行代码都将在服务器主机进行。

本文内容

  • 配置Windows服务器和客户端VSCode的SSH服务

  • 基于Zerotier搭建虚拟局域网实现校外连接


实验室主机(Windows 11)

这里贴出CSDN上一篇博客,关于SSH介绍、服务器配置SSH服务都写得很详细,UP也参考了这篇教程。

https://blog.csdn.net/weixin_72910567/article/details/132414264

关于服务器的OpenSSH安装设置自启动检查防火墙等操作,UP和该教程操作一致。大家一定记得确认防火墙规则,以免连不上服务器。

本地VSCode配置

本地VSCode安装<Remote - SSH>插件,具体教程可以参考:

https://blog.csdn.net/qq_22841387/article/details/143094904

这里对SSH配置文件[~\.ssh\config]做一定解释补充:

第二行IP地址暂用实验室局域网中分配的地址,稍后在搭建虚拟局域网修改

❗注意(易踩坑):

Host字段不要加一些奇怪的符号例如@,会影响插件对SSH指令的创建

User字段请查看服务器的C:\Users文件夹内的用户名,并在Windows设置中查看该用户是否具有管理员权限!【UP自己创建了一个用户但没有给管理权限,导致虽然cmd中能通过SSH指令连接服务器,而VSCode连接失败】

除了以上ssh/config文件配置外,还可以在VSCode的setting.json中配置服务器的平台类别,这样后续的连接中就不用去选择了。

其它像生成公钥私钥实现免密登录等操作,这里就不加赘述,可以搜索相关技术博客作为补充。【Windows服务器的实现过程比较麻烦,UP暂时没有复现教程】


解决IP问题——搭建虚拟局域网

以上步骤完成后,若能够通过【ssh 用户名@服务器IP地址】指令连接,表明SSH服务搭建成功了。下面就解决如何在校外连接到实验室局域网

虚拟局域网选用Zerotier这个免费软件【之前创建虚拟局域网联机文明6也是用的它网页链接​

创建并加入虚拟网络

先在Zerotier[https://my.zerotier.com/network]创建一个帐号,用来管理虚拟局域网

创建一个局域网,Name可以随便取一个,我们只需要复制Network ID,别的设置可以不用管

实验室主机SSH客户端电脑下载[https://www.zerotier.com/download/]并安装Zerotier,软件很小并且不需要登录。启动后可以在状态栏找到它,右键,点击Join New Network,输入刚刚的Network ID,即可加入该网络。

管理网络成员

回到虚拟局域网的管理页面,在刚刚创建的网络中,Members一栏即为该网络成员

Managed IPs一栏即表示设备在网络中的IP地址,你也可以在Edit中编辑该地址,或者设备名,备注等属性。这其中最重要的是服务器的虚拟IP地址

可以试着在自己电脑中cmd命令行中ping一下服务器的虚拟IP地址,若ping通则表明自己电脑和服务器已经在一个虚拟的局域网中,可以放心建立SSH连接了。如果失败,请检查防火墙

回到SSH配置文件[~\.ssh\config],HostName字段替换成服务器的虚拟IP地址。再试试建立SSH连接。

至此,就能在家里SSH连接实验室的服务器继续niu ma了