Ssh 的 RemoteCommand 功能可用于自动创建/附加 tmux 会话,像这样在 Windows 中,我的会话间歇性地看到转义序列 ^0;10;1c
或 ^ [[>1;1c
,在我的终端中显示如下:
这种行为似乎仅限于 Windows 11,包括终端和控制台主机应用程序。在 Windows 10 上,任何 cmd.exe 变体似乎都不会发生这种情况。我目前正在通过在传统模式下运行 W11 控制台主机来解决这个问题,但我更愿意使用 Windows 终端。
我怎样才能将这些转义序列排除在我的 tmux 会话之外?
以下是包含错误假设的原始问题文本:
(根据下面@user1686 的回复,我现在认为这是一个错误的假设)。
Windows 版 OpenSSH(包括当前测试版 9.2p1)似乎会推送一些看起来像转义序列的额外字符。在给定的命令窗口中,第一个 ssh 会话插入了垃圾,因此我的新 tmux 会话看起来如下图所示。cmd、powershell 和 cygwin 终端也是如此。这确实不是如果远程命令不存在或为原始bash
命令,则会发生这种情况。奇怪的是,它也不会发生在第二、第四等 ssh 命令上。
答案1
这是终端的回复到ESC [ c
远程程序发出的“请求终端属性”。
(\033[c
“请求终端属性”是 tmux 输出到终端的几个信息请求之一,期望收到与来自终端的输入类似的响应(通常它们会被 tmux 不可见地使用,就像特殊键序列一样)。
我无法使用 tmux 3.3a 或 3.2a 重现此问题。
奇怪的是,它也没有发生在第二个、第四个等 ssh 命令上。
您的远程命令专门编写为第一次启动新的 tmux 会话,但在第二次、第四次等连接时附加到现有会话。它们会表现出不同的行为,这是很自然的。