终端 > Warp 化概览
旧版 SSH 包装器
# 旧版 SSH 封装器 import DemoVideo from '@components/DemoVideo.astro'; :::note 如果您希望对 tmux SSH 功能进行故障排除,请参阅 [SSH](/terminal/warpify/ssh/)。 ::: 通过 SSH 连接到远程设备时,您无需进行任何配置即可获得 Warp 的所有功能。输入编辑器、自动补全和历史搜索在任何机器上的工作方式都是相同的。 :::caution [SSH 的限制](https://github.com/warpdotdev/Warp/issues/578)(截至 2024 年 5 月): * SSH 封装器仅支持远程会话中的 `bash` 或 `zsh` shell。 * 如果您使用其他 shell,则需要直接使用 `command ssh`(有关更多详细信息,请参阅下文)。 * 对于 zsh,需要 xxd 来引导 warp。 * 对于 Windows,需要 [Cygwin](https://www.cygwin.com/) 来引导 SSH 封装器。 * RemoteCommand 会导致 ssh 封装器失败。 * [目前不支持 Tmux。](https://github.com/warpdotdev/Warp/discussions/501) ::: :::note 如果您在远程主机上使用 zsh,Warp 会在引导过程中创建一个临时文件夹作为 ZDOTDIR,并在 shell 设置完成后将其删除。 :::  ## 实现 我们创建了一个封装器(围绕 `/usr/bin/ssh`)来为 Warp 的功能集设置 shell。我们使用 `/usr/bin/ssh` 进行常规身份验证,并引导远程 shell 以使用 Warp Blocks 和输入编辑器。您可以通过直接调用 `command ssh` 来选择禁用此功能。 * Warp 接管了提示符,这使我们能够构建现代化的输入编辑器。 * Warp 将 histcontrol 配置为忽略带有前导空格的命令。我们这样做是为了使我们的引导代码不会使历史记录变得杂乱。您可以通过在 zsh 中使用 `which warp_ssh_helper` 或在 bash 中使用 `type warp_ssh_helper` 来查看 SSH 封装器。 _注意:_ SSH 封装器仅在您的本地机器上进行 _初始化_。我们目前不支持引导嵌套的 SSH 会话。 :::note Warp 的 ssh [补全](/terminal/command-completions/completions/) 会显示 `~/.ssh/config` 和 `~/.ssh/known_hosts` 中的条目 ::: ## SSH 故障排除 ### channel 2: open failed: connect failed: open failed 如果您看到这些错误,可能是您的服务器上存在某些配置(通常在 `/etc/ssh/sshd_config` 中)阻止了 Warp 的 ControlMaster 连接正常工作。在这种状态下,需要从远程主机获取信息的补全功能将无法工作,您的历史记录也将无法工作。您应确保 `MaxSessions` 已被注释掉,或者至少设置为 `2`。`/etc/ssh/` 中的写权限通常需要 sudo 权限。进行任何编辑后,您还需要重启 `sshd` 守护进程。 ### SSH 封装器失败 有几个 [SSH 封装器的已知问题](https://github.com/warpdotdev/Warp/issues?q=is%3Aissue+is%3Aopen+sort%3Acreated-desc+label%3ABugs+label%3ASSH)。作为 SSH 封装器的变通方法,您可以将 `command ssh` 添加到您的 **Settings** > **Warpify** > **Subshells** > **Added commands** 中,然后运行 `command ssh旧版 SSH 封装器,可在无需 tmux 的情况下在远程机器上引导 Warp 功能。
通过 SSH 连接到远程设备时,您无需进行任何配置即可获得 Warp 的所有功能。输入编辑器、自动补全和历史搜索在任何机器上的工作方式都是相同的。

我们创建了一个封装器(围绕 /usr/bin/ssh)来为 Warp 的功能集设置 shell。我们使用 /usr/bin/ssh 进行常规身份验证,并引导远程 shell 以使用 Warp Blocks 和输入编辑器。您可以通过直接调用 command ssh 来选择禁用此功能。
- Warp 接管了提示符,这使我们能够构建现代化的输入编辑器。
- Warp 将 histcontrol 配置为忽略带有前导空格的命令。我们这样做是为了使我们的引导代码不会使历史记录变得杂乱。
您可以通过在 zsh 中使用 which warp_ssh_helper 或在 bash 中使用 type warp_ssh_helper 来查看 SSH 封装器。
注意: SSH 封装器仅在您的本地机器上进行 初始化。我们目前不支持引导嵌套的 SSH 会话。
SSH 故障排除
标题为“SSH 故障排除”的章节channel 2: open failed: connect failed: open failed
标题为“channel 2: open failed: connect failed: open failed”的章节如果您看到这些错误,可能是您的服务器上存在某些配置(通常在 /etc/ssh/sshd_config 中)阻止了 Warp 的 ControlMaster 连接正常工作。在这种状态下,需要从远程主机获取信息的补全功能将无法工作,您的历史记录也将无法工作。
您应确保 MaxSessions 已被注释掉,或者至少设置为 2。
/etc/ssh/ 中的写权限通常需要 sudo 权限。进行任何编辑后,您还需要重启 sshd 守护进程。
SSH 封装器失败
标题为“SSH 封装器失败”的章节有几个 SSH 封装器的已知问题。作为 SSH 封装器的变通方法,您可以将 command ssh 添加到您的 Settings > Warpify > Subshells > Added commands 中,然后运行 command ssh <user@server> 以连接到远程会话,这将尝试以 子 shell 的形式启用 Warp 功能。