放寒假了,回了家还得偶尔干干活
想到要抱着14寸笔记本,用向日葵远程实验室工位电脑跑代码,就替眼睛难受(舍不得花钱开会员提高分辨率)。如果实现SSH连接工位电脑的VSCode可以更舒适地调代码。
通过SSH服务,本地的VSCode就成了一个前端界面,而修改和运行代码都将在服务器主机进行。
配置Windows服务器和客户端VSCode的SSH服务
基于Zerotier搭建虚拟局域网实现校外连接
这里贴出CSDN上一篇博客,关于SSH介绍、服务器配置SSH服务都写得很详细,UP也参考了这篇教程。
https://blog.csdn.net/weixin_72910567/article/details/132414264
关于服务器的OpenSSH安装、设置自启动、检查防火墙等操作,UP和该教程操作一致。大家一定记得确认防火墙规则,以免连不上服务器。
本地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暂时没有复现教程】
以上步骤完成后,若能够通过【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了