跳至正文

终端 > Warp 化概览

使用 Warp 功能进行 SSH 连接

在 ChatGPT 中打开 ↗
向 ChatGPT 询问关于此页面的内容
在 Claude 中打开 ↗
向 Claude 询问关于此页面的内容
已复制!

在远程 macOS 和 Linux 主机上使用 Warp 的 SSH 扩展,以通过 SSH 获得真实的文件树、可靠的补全和原生代码编辑功能。

Warp 的 SSH 扩展将本地的 Warp 体验带到了远程 macOS 和 Linux 主机上。在首次连接时选择加入后,您将获得一个由远程文件系统支持的真实文件树、通过单个多路复用 SSH 连接提供更可靠的补全功能,以及一个使用 Warp 原生 diff 工具而非退回到 sed 来应用编辑的编码智能助手。

在远程主机上安装 SSH 扩展后,以下功能将与本地运行一样

  • 文件树 (Project Explorer) - 左侧面板反映了远程项目的结构,并会在您在目录之间 cd 或更改文件时更新。请参阅 文件树
  • 可靠的补全和自动建议 - 生成器在单个多路复用连接上并行运行,而不是为每个命令打开一个新的 SSH 会话,因此补全不再触及远程主机的 MaxSessions 上限,也不会再偶尔向您的代码块中注入错误。
  • 原生文件读取和代码 diff - 智能助手通过 Warp 内置的 diff 工具读取文件并应用编辑。代码更改将显示为您可以审查和批准的内联 diff,而不是通过 sed 或其他 shell 命令应用。请参阅 代码 diff
  • 所有核心终端功能 - 输入编辑器、块、命令历史记录、自动建议和历史记录搜索的行为与本地会话相同。

有关 SSH 下的功能支持的完整细分,请参阅 SSH 下的功能支持

Warp prompting to Warpify a freshly-connected SSH session.

在首次连接到尚未安装 SSH 扩展的主机时,Warp 会显示一个包含两个选项的块内提示

  • 安装 Warp 的 SSH 扩展 - 推荐。Warp 下载匹配远程操作系统和架构的远程服务器扩展,将其安装在 ~/.warp/remote-server 下(预览版构建中为 ~/.warp-preview/remote-server),启动它,并完成握手。后续连接到同一主机将跳过该提示并重复使用已安装的二进制文件。
  • 继续而不安装 - 跳过为此连接安装扩展。会话将在没有 SSH 扩展的情况下继续,因此在您安装之前,文件树、原生文件读取和原生代码 diff 功能将不可用。您可以随时重新连接并安装。

Warp 在未经您明确同意的情况下绝不会在远程主机上安装任何内容,并且安装仅会写入 ~/.warp*/ 目录。

在 Warp 应用中,转到 Settings > Warpify 来控制提示的行为

  • 总是询问 (默认) - 每次首次连接到每台主机时显示安装提示。
  • 总是安装 - 跳过提示,并在扩展缺失时自动安装。
  • 从不安装 - 跳过提示,并在不安装 SSH 扩展的情况下连接到主机。

相同的设置也可以通过在点击任一按钮之前选择 不再询问我 来在安装提示中进行更改。底层 TOML 键为 warpify.ssh.ssh_extension_install_mode - 请参阅 所有设置参考 获取 SSH 相关设置的完整列表,包括用于您永远不想启用 Warp 化的主机的 ssh_hosts_denylist

基于 tmux 的 Warp 化是一种在 SSH 会话中启用 Warp 功能的旧方法。它使用 tmux 在您的 SSH 连接上多路复用命令,并提供块、补全、输入编辑器和历史记录搜索功能。

对远程 SSH 会话进行 Warp 化会更改远程机器吗?

标题为“对远程 SSH 会话进行 Warp 化会更改远程机器吗?”的章节

只有在您明确许可的情况下才会。SSH 扩展将远程服务器扩展安装在 ~/.warp*/remote-server 下。旧版基于 tmux 的 Warp 化如果不存在 tmux(一种流行的开源终端多路复用器),则会安装它。这两种流程都会准确向您显示它们将运行的内容,您可以随时拒绝并继续使用不带这些功能的 SSH。

为什么我需要在远程机器上使用 tmux

标题为“为什么我需要在远程机器上使用 tmux?”的章节

tmux 仅旧版基于 tmux 的 Warp 化路径需要;SSH 扩展不需要它。tmux 是一种流行的开源终端多路复用器,允许您在一个 SSH 连接中运行多个会话。它需要的权限极小且被广泛采用(GitHub 上 ⭐ 3.5w+)。旧路径使用 tmux 控制模式 来运行临时的后台任务,如自动完成 cd 命令或填充自定义提示符的内容。SSH 扩展通过在单个 SSH 连接上通过长度定界协议通信来取代此方案。

我可以 SSH 连接到我不想要 Warp 化的远程机器吗?

标题为“我可以 SSH 连接到我不想要 Warp 化的远程机器吗?”的章节

可以。取消提示以在没有 Warp 功能的情况下继续,或将主机添加到黑名单(Settings > Warpify > SSH hosts denylist),这样您就不会再被提示。

在您成功手动 Warp 化 SSH 连接后,Warp 会提供一个简短的脚本,您可以运行该脚本将标记附加到 shell 的 rc 文件末尾。这让 Warp 知道何时您的远程 shell 已准备好进行 Warp 化。为获得最佳结果,请将该代码片段放在 rc 文件的底部。

Setting up Auto-Warpify

Warp 支持 macOS 和大多数 Linux 发行版作为远程主机,同时支持 SSH 扩展和旧版基于 tmux 的 Warp 化。支持的 shell 为 bashzsh。暂不支持 Windows 远程主机。

如果 Warp 未检测到我的 SSH 会话怎么办?

标题为“如果 Warp 未检测到我的 SSH 会话怎么办?”的章节

如果您处于远程 SSH 会话中但 Warp 未检测到它,您可以通过打开 命令面板 并搜索“Warpify SSH Session”来手动进行 Warp 化。

是什么触发了用于 Warp 化的 SSH 会话检测?

标题为“是什么触发了用于 Warp 化的 SSH 会话检测?”的章节

在启用 SSH 会话检测的情况下,Warp 会监视参数暗示交互式会话的 ssh 命令。如果您设置了 ssh 别名或作为脚本的一部分运行它,Warp 将不会执行 SSH 会话检测。

一旦 Warp 确信您已成功验证(通过检测到 Last login: 或类似基本提示符的内容),它就会提示您 Warp 化活动的 SSH 会话。

如果 SSH 会话检测未捕获到您的会话,您仍然可以 手动 Warp 化