vscode remote-ssh和remote-tunnel连接有什么区别?

19

VSCODE的Remote SSHRemote Tunnels相比,在开发中速度和代码保护方面有何区别?

乍一看,SSH在两台机器之间共享工作负载(扩展) Remote SSH

而远程隧道完全在远程/服务器机器上运行 Tunnel

远程隧道是否通过互联网连接两台机器?它如何影响速度?

当可能时,远程SSH是否总是更可取?


2
在SSH远程中,本地的VSC只是一个智能终端,显示远程VSC的视图,它可能在本地实例中编辑文件,但将其存储在远程文件系统/工作区中。 - rioV8
1
你找到满意的答案了吗?特别是,我对性能很好奇:远程SSH比远程隧道更快吗?还是不是? - undefined
我目前还没有使用远程隧道,因为我不是远程机器上的管理员,这意味着我必须要求别人在远程机器上升级VSCODE等软件。此外,我喜欢SSH可以在两台机器上分担负载,这对我来说似乎是一个优势。本地可以工作的东西不需要经过互联网。我担心SSH是否会被隧道取代。 - undefined
2个回答

1
"代码保护": 这是后面跟着 microsoft/vscode-remote-release issue 6608,但目前还没有官方文档。 Issue 8110 提供了使用隧道而非 SSH 的示例:

I'm using the code tunnel on a multi-node HPC cluster.
This means that I can run it from any number of machines (depending on where my job is scheduled), but all share the same NFS-mounted home directory.

However, I've noticed that the generated token is tied to a specific machine: if I run a new code tunnel from a different machine, it will give the prompt:

To grant access to the server, please log into https://github.com/login/device 
and use code XXXX-XXXX

This appears to modify the ~/.vscode-cli/token.json file.
If I run code tunnel again from the same machine, I don't see the prompt, but I do if I change machines (including ones previously authenticated).

得到了微软方面的确认:

令牌密钥使用特定于机器的信息进行加密/混淆。我们目前不支持在多台机器之间共享此密钥。

混淆是用于在具有更宽松的密钥链的系统上提供一定程度的安全性,即不会在系统级别上将密钥隔离在不同的消费应用程序之间。
请参见microsoft/vscode@cli/src/auth.rs

这个问题已经通过PR 175940得到解决。

所有这些都指向了一个与SSH不同的加密机制。


0

远程隧道 VS 远程开发 VS Code 服务器

code.visualstudio.com所述

Visual Studio Code 远程开发允许您使用容器、远程机器或 Windows Subsystem for Linux (WSL) 作为完整功能的开发环境。

远程开发使您的本地 VS Code 安装能够透明地与其他机器上的源代码和运行环境进行交互(无论是虚拟的还是物理的),通过将某些命令的执行移动到“远程服务器”——VS Code 服务器。当您连接到远程终端时,VS Code 会快速安装 VS Code 服务器,并且可以托管直接与远程工作区、机器和文件系统进行交互的扩展。

我们已将此 VS Code 服务器后端组件发布为您可以自行运行的服务(您可以在其文档中了解更多信息),而不仅仅是由远程开发扩展安装和管理。


访问VS Code服务器涉及几个组件:
VS Code服务器:后端服务器,使得VS Code远程体验成为可能。
远程隧道扩展:扩展程序,便于连接到远程机器,在那里您运行了一个服务器实例。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接