我想使用 VS Code 远程 SSH 在我们机构的集群上做开发工作。我们的集群使用一个带有接收所有 SSH 请求的登录节点的架构。我们不鼓励将登录节点用于任何耗时超过几秒钟的任务,以避免拒绝服务。要执行可能需要一些时间的终端命令,我们可以使用命令在计算节点上生成交互式作业。一旦交互式作业运行,终端会自动将我们带到该节点。
我的问题是主机上的 VS Code 服务器设置在登录节点上,任何涉及文件操作、处理等的任务都在登录节点上运行。在主机上设置 VS Code 服务器之前,我看不到任何注入命令以生成交互式作业的方法。我也没有看到在计算节点上手动设置服务器然后连接到它的方法。
到目前为止,我已经成功修改了 .bashrc 服务器端,以及本地 VS Code 中的 terminal.integrated.env.linux 和 terminal.integrated.shellArgs.linux 设置,为“终端”菜单中生成的新终端自动执行上述过程. 如果我在连接后创建一个新终端,那么通过该终端,事情会按我的预期工作。这似乎不会更改初始 SSH 连接或服务器设置。
如何让 VS Code 服务器在计算节点上运行?或者确保这些不同的任务在计算节点上运行?
时隔3.5年,这个问题终于有了答案!
VSCode Remote 团队开发了远程隧道,它在远程计算机和本地 VSCode(或浏览器)之间形成安全的隧道连接。这需要一个 GitHub 帐户。
要在集群环境中使用它:
转到上面的链接并在集群上的用户空间中安装 VSCode CLI。我建议将安装文件夹添加到$PATH.
使用命令作为负载启动批处理作业code tunnel。这是一个阻塞命令,因此它应该防止作业终止。
检查作业生成的 stdout 输出文件中的 8 位激活码。
按照 的指示使用激活码code tunnel。
在任意位置打开 VSCode,然后使用命令面板或左下角的 VSCode Remote 图标/按钮(看起来像><)连接到隧道。
找到具有您指定名称的隧道并连接。
从这里开始,一切都或多或少像远程 SSH 一样工作。您可以使多个 VSCode 实例连接到同一个隧道。
我喜欢通过交互式桌面作业(通过 Open OnDemand)来完成此操作,以便在出现问题时获得更多控制。然后我可以终止隧道服务器并重新启动它,并且重新连接很容易,因为我不需要再次输入代码。
| 归档时间: |
|
| 查看次数: |
545 次 |
| 最近记录: |