VSCode使用跳板机远程登陆共享内网穿透

VSCode 使用跳板机远程登陆共享内网穿透

VSCode_01
VSCode_01

Background

VSCode 19 年加入的 Remote Development 功能极大的方便了用户通过本地 VSCode 界面操作远程服务器、容器或者WSL,兼有好看易用的 GUI、插件生态与 Linux shell,可以说是很多轻度服务器使用者的福音了。根据官网描述,VSCode Remote Development 可以用来做很多事情,比如:

  1. 隔离远程与本地环境
  2. 在远程配置不适用本地的工具或环境
  3. 直接调试或部署在服务器上的应用(比如网站)
VSCode_02
VSCode_02

我因为操作服务器比较多,也有些 vim/emacs 基础,之前一直使用MobaXTerm+tmux+emacs来进行服务器上的开发。多机实验则会再用上git来进行代码同步和版本控制。整套工具包🧰用起来还是很舒畅自然的,只是最近的多机实验需要频繁调试改动某一台机器上部分代码,主要问题和需求

  • 希望能有更方便的窗口来单独管理(更重要的原因是我 vim/emacs 技术不够起飞)。
  • 该机器并没有外网端口,需要借助跳板机 ssh 才可以使用。

集群配置

我实验的配置一共五个计算节点,由一台 n1 服务器充当跳板机,n2、n4、n5(n3 有外部端口但不使用)不提供外部端口,仅能从 n1 跳转,均禁止密码访问(为了防止被矿工爆破)

VSCode SSH Configuration

我使用 VSCode 的配置如下

1
2
3
4
5
6
7
8
9
Host USTC-n1
HostName your-externel-ip
User your-user-name
Port your-port

Host USTC-n2
HostName your-internel-ip
User your-user-name
ProxyJump USTC-n1

注意区分外网 IPyour-externel-ip(外界访问集群的 IP)与内网 IPyour-internel,当然如果设置了 hostname,也可以直接替换,比如在我的配置里将内网 IP 替换为 n2。

配置成功后,F1建输入 Connect to Host... 然后选择 USTC-n2 进行测试,成功后结果如下图:

VSCode_03
VSCode_03

Other Tips

当然配置文件还有很多其他选项可用,比如使用ProxyCommand或是密钥配置之类的。

更多奇技淫巧可以参考 Tips and Tricks

Reference