有关配置 VS Code 调试功能的详细信息,请参阅调试.vscode/launch.json
文档。
SSH 主机特定设置
当您连接到 SSH 主机时,VS Code 的本地用户设置也会重复使用。虽然这可以保持用户体验一致,但您可能希望在本地计算机和每台主机之间更改其中一些设置。幸运的是,一旦连接到主机,您还可以通过运行“首选项:从命令面板打开远程设置”命令( F1、⇧⌘P(Windows、Linux Ctrl+Shift+P))或通过在“设置”编辑器中的“远程”选项卡上进行选择。每当您连接到主机时,这些将覆盖您已有的任何用户设置。工作区设置将覆盖远程和用户设置。
远程 - SSH 扩展不提供对同步源代码或使用本地工具与远程主机上的内容的直接支持。但是,有两种方法可以使用适用于大多数 Linux 主机的通用工具来执行此操作。具体来说,您可以:
使用 SSHFS 挂载远程文件系统。
使用 . 将文件同步到远程主机或从远程主机同步到本地计算机rsync
。
SSHFS 是最方便的选项,不需要任何文件同步。但是,性能会比通过 VS Code 工作显着慢,因此它最适合用于单个文件编辑和上传/下载内容。如果您需要使用一次批量读取/写入多个文件的应用程序(例如本地源代码控制工具),rsync 是更好的选择。
已知的限制
远程 - SSH 限制
建议使用基于密钥的身份验证。不会保存为备用身份验证方法输入的密码和其他令牌。
不支持 Alpine Linux 和非基于 glibc 的 Linux SSH 主机。
较旧的(社区支持的)Linux 发行版需要解决方法来安装所需的先决条件。
Windows 不支持 PuTTY。
如果使用 SSH 克隆 Git 存储库并且 SSH 密钥有密码,则 VS Code 的拉取和同步功能可能会在远程运行时挂起。使用不带密码的 SSH 密钥、使用 HTTPS 克隆或git push
从命令行运行来解决该问题。
本地代理设置不会在远程主机上重复使用,这可能会阻止扩展工作,除非在远程主机上配置了适当的代理信息(例如具有适当代理信息的全局变量HTTP_PROXY
或环境变量)。HTTPS_PROXY
请参阅此处以获取与 SSH 相关的活跃问题列表。
Docker 扩展限制
如果您在“远程 - SSH”窗口中使用 Docker 或 Kubernetes 扩展,则将无法使用右键单击“将VS Code 附加到容器”选项。仅当您从本地计算机使用它时,这才有效。
许多扩展无需修改即可在远程 SSH 主机上运行。但是,在某些情况下,某些功能可能需要更改。如果您遇到扩展问题,可以在报告问题时向扩展作者提及常见问题和解决方案的摘要。
此外,由于扩展中的本机模块或运行时仅支持 x86_64,因此安装在 ARMv7l (AArch32) / ARMv8l (AArch64) 设备上的某些扩展可能无法工作。在这些情况下,扩展需要通过编译/包含 ARMv7l / ARMv8l 的二进制文件来选择支持这些平台。
如何在...上设置 SSH 客户端?
有关详细信息,请参阅安装支持的 SSH 客户端。
如何在...上设置 SSH 服务器?
有关为主机设置SSH 服务器的详细信息,请参阅安装支持的 SSH 服务器。
我可以使用其他/附加身份验证机制(例如密码)登录我的 SSH 服务器吗?
是的,系统应该会自动提示您输入令牌或密码。但是,不会保存密码,因此使用基于密钥的身份验证通常更方便。
如何修复有关“错误权限”的 SSH 错误?
有关解决这些类型的错误的详细信息,请参阅修复 SSH 文件权限错误。
远程 SSH 主机上需要安装哪些 Linux 软件包/库?
大多数 Linux 发行版不需要额外的依赖项安装步骤。对于 SSH,Linux 主机需要安装 Bash ( /bin/bash
)、tar
和 或curl
或wget
,并且某些精简发行版中可能会缺少这些实用程序。远程开发还需要内核 >= 3.10、glibc >=2.17、libstdc++ >= 3.4.18。目前仅支持基于 glibc 的发行版,因此不支持Alpine Linux 。
有关详细信息,请参阅Linux 先决条件。
当 VS Code 服务器在远程计算机/虚拟机上运行时,其连接要求是什么?
安装 VS Code Server 要求您的本地计算机具有到以下位置的出站 HTTPS(端口 443)连接:
update.code.visualstudio.com
vscode.blob.core.windows.net
*.vo.msecnd.net
(Azure CDN)
默认情况下,远程 - SSH 将尝试在远程主机上下载,但如果启用remote.SSH.allowLocalServerDownload
,扩展将回退到本地下载 VS Code Server,并在建立连接后远程传输。
您可以使用Extensions: Install from VSIX...命令在没有 Internet 连接的情况下手动安装扩展,但如果您使用扩展面板安装扩展,您的本地计算机和 VS Code Server 服务器将需要出站 HTTPS(端口 443)访问:
marketplace.visualstudio.com
*.vo.msecnd.net
(Azure CDN)
*.gallerycdn.vsassets.io
(Azure CDN)
最后,一些扩展(如 C#)从download.microsoft.com
或下载辅助依赖项download.visualstudio.microsoft.com
。其他(如Visual Studio Live Share)可能有额外的连接要求。如果遇到问题,请参阅扩展的文档以获取详细信息。
服务器和 VS Code 客户端之间的所有其他通信都是通过经过身份验证的安全 SSH 隧道完成的。
是的。通常,这是使用 SSHFS或通过获取rsync
本地计算机上的文件副本来完成的。SSHFS 安装远程文件系统非常适合需要编辑单个文件或浏览源树并且不需要使用同步步骤的场景。但是,对于使用批量管理文件的源代码控制工具之类的工具来说,它并不理想。在这种情况下,该rsync
方法更好,因为您可以在本地计算机上获得远程源代码的完整副本。有关详细信息,请参阅提示和技巧。
当我只有 SFTP/FTP 文件系统访问远程主机(无 shell 访问权限)时,我可以使用 VS Code 吗?
一些云平台只为开发人员提供远程文件系统访问,而不是直接 shell 访问。VS Code 远程开发在设计时并未考虑到此用例,因为它否定了性能和用户体验优势。
然而,这种用例通常可以通过将SFTP等扩展与Node.js、Python、C#或其他的远程调试功能相结合来处理。
作为扩展作者,我需要做什么?
VS Code 扩展 API 抽象了本地/远程详细信息,因此大多数扩展无需修改即可工作。但是,由于扩展可以使用它们想要的任何节点模块或运行时,因此在某些情况下可能需要进行调整。我们建议您测试您的扩展以确保不需要更新。详细信息请参见支持远程开发。
问题或反馈
请参阅提示和技巧或常见问题解答。
在堆栈溢出上搜索。
添加功能请求或报告问题。
为我们的文档或VS Code 本身做出贡献。
有关详细信息,请参阅我们的贡献指南。