如何确保 VS Code 远程 SSH 服务器在我们集群的计算节点上运行?

wwa*_*ner 7 vscode-remote

我想使用 VS Code 远程 SSH 在我们机构的集群上做开发工作。我们的集群使用一个带有接收所有 SSH 请求的登录节点的架构。我们不鼓励将登录节点用于任何耗时超过几秒钟的任务,以避免拒绝服务。要执行可能需要一些时间的终端命令,我们可以使用命令在计算节点上生成交互式作业。一旦交互式作业运行,终端会自动将我们带到该节点。

我的问题是主机上的 VS Code 服务器设置在登录节点上,任何涉及文件操作、处理等的任务都在登录节点上运行。在主机上设置 VS Code 服务器之前,我看不到任何注入命令以生成交互式作业的方法。我也没有看到在计算节点上手动设置服务器然后连接到它的方法。

到目前为止,我已经成功修改了 .bashrc 服务器端,以及本地 VS Code 中的 terminal.integrated.env.linux 和 terminal.integrated.shellArgs.linux 设置,为“终端”菜单中生成的新终端自动执行上述过程. 如果我在连接后创建一个新终端,那么通过该终端,事情会按我的预期工作。这似乎不会更改初始 SSH 连接或服务器设置。

如何让 VS Code 服务器在计算节点上运行?或者确保这些不同的任务在计算节点上运行?

编辑:我忘记了这个问题。不过好消息是,Github 上关于此的一个问题已成为待办事项以备将来实施。

wwa*_*ner 5

时隔3.5年,这个问题终于有了答案!

VSCode Remote 团队开发了远程隧道,它在远程计算机和本地 VSCode(或浏览器)之间形成安全的隧道连接。这需要一个 GitHub 帐户。

要在集群环境中使用它:

  1. 转到上面的链接并在集群上的用户空间中安装 VSCode CLI。我建议将安装文件夹添加到$PATH.

  2. 使用命令作为负载启动批处理作业code tunnel。这是一个阻塞命令,因此它应该防止作业终止。

  3. 检查作业生成的 stdout 输出文件中的 8 位激活码。

  4. 按照 的指示使用激活码code tunnel

  5. 在任意位置打开 VSCode,然后使用命令面板或左下角的 VSCode Remote 图标/按钮(看起来像><)连接到隧道。

  6. 找到具有您指定名称的隧道并连接。

从这里开始,一切都或多或少像远程 SSH 一样工作。您可以使多个 VSCode 实例连接到同一个隧道。

我喜欢通过交互式桌面作业(通过 Open OnDemand)来完成此操作,以便在出现问题时获得更多控制。然后我可以终止隧道服务器并重新启动它,并且重新连接很容易,因为我不需要再次输入代码。