通过 SSH 编辑文件是否会将其传输到本地机器?

通过 SSH 编辑文件是否会将其传输到本地机器?

如果我要通过 SSH 连接编辑文件,比如说通过 SSH 进入远程并使用 Vim 编辑文件,或者使用VSCode 的远程开发功能,文件是否真的被传输到主机(即使它们只是被保存在内存中)并在更改后发送回来?我对 SSH 的了解有限,我认为是的,当然必须如此,但我没有找到任何可以证实这一点的东西,也许我只是没有有效地搜索。除非有一堆花哨的基础设施,让远程渲染文件并将这些渲染的缓冲区发送回主机,否则它必须只是发送实际的文件,因为我不认为这只发生在 SSH 上(我认为这就是发生的事情,比如AWS 工作区?)。这个问题是在评估通过 SSH 编辑文件和在本地机器上保存敏感代码的安全性的背景下提出的。

答案1

这取决于每个系统使用 SSH 的方式。

如果您使用 SSH 连接到服务器并进入终端会话并启动 vi,则编辑将完全在远程服务器上进行。您只能在本地计算机上看到屏幕的副本。

我不知道 VSCode 远程开发功能的所有细节,但我看到它在远程机器上创建了一个进程,该进程充当计算机上运行的 Visual Studio Code 进程的服务器。我认为服务器部分会在远程服务器上打开文件,并将内容发送到编辑器,反之亦然。

这两种方法都不会将物理文件发送到客户端计算机。

桌面 SFTP 客户端使用另一种方法。它们可能有一个选项:“编辑文件”。在这种情况下,SFTP 客户端将文件内容下载到本地磁盘,然后启动所选编辑器在本地磁盘上编辑文件。

一旦编辑器关闭,SFTP 客户端就会将文件上传到远程服务器。

另一种方法是完全桌面远程访问,例如通过 SSH 隧道的 VNC。在这种情况下,远程计算机的图形桌面显示在本地计算机上。当您在那里编辑文件时,所有文件操作都发生在远程服务器上。

相关内容