SSH 远程也能用鼠标?psmux 跨平台 SSH 鼠标支持与 Windows 版本要求详解
SSH 远程也能用鼠标psmux 跨平台 SSH 鼠标支持与 Windows 版本要求详解【免费下载链接】psmuxTmux on Windows Powershell - tmux for PowerShell, Windows Terminal, cmd.exe. Includes psmux, pmux, and tmux commands. This is native High-Performance Tmux designed for Windows in Rust 项目地址: https://gitcode.com/gh_mirrors/ps/psmuxpsmux 是一款用 Rust 编写的 Windows 原生终端复用器Windows 版 tmux支持完整的鼠标操作、tmux 配置与主题。本文详解 psmux 的SSH 远程鼠标支持与Windows 版本要求在 Windows 11 build 22523 及以上版本普通ssh连接即可直接使用鼠标在 Windows 10 上则需要使用官方自带的客户端包装脚本来绕过 ConPTY 的限制。SSH 远程鼠标结论先看这里好消息psmux 对 SSH 伪终端下的鼠标提供了一等公民级别的支持 ️。从 macOS、Linux 或任意操作系统通过 SSH 连接到 Windows 服务器时滚轮滚动、点击切换窗格、拖拽选择文本等本地操作在远程会话中同样可用——前提是你的 Windows 版本满足下面的要求。客户端到服务器的兼容矩阵psmux 官方文档给出了清晰的兼容性速查表客户端 → 服务器键盘鼠标使用方式任意系统 → Windows 11 build 22523✅✅普通ssh命令macOS / Linux → Windows 10✅✅使用 scripts/psmux-ssh.sh任意系统 → Windows 10普通 SSH PTY✅❌ConPTY 会吞掉鼠标字节任意系统 → Windows Server 2019/2022✅⚠️默认关闭需手动开启本地 Windows 10/11✅✅直接运行 psmuxWindows 版本要求速查Windows 11 build 22523 及以上零配置。普通ssh userwindows-host登录后鼠标直接可用这是最省心的组合。Windows 10含早期 Windows 11 版本普通 SSH 连接下 ConPTY 会消耗鼠标序列鼠标不可用必须使用下文的一键包装脚本。Windows Server 2019 / 2022默认关闭鼠标安全门槛所致但部分版本如 Server 2022 build 20348实际处理得很好设置环境变量PSMUX_FORCE_MOUSE1即可恢复鼠标。⚠️ 为什么 22523 是门槛因为在 Windows 10 时代的 conhost 中收到鼠标报告可能直接让控制台宿主闪退并带走整个窗格进程。psmux 选择了一条保守而安全的策略宁可用不了鼠标也不能死掉会话a dead mouse beats a dead session。Windows 10 方案官方客户端包装脚本如果你远程连接的是 Windows 10只需两步获得完整鼠标支持把 scripts/psmux-ssh.sh 复制到你的 macOS / Linux 客户端运行sh psmux-ssh.sh --session work -- userwindows-host脚本会自动完成五件事保存并切换本地终端到 raw 模式 → 启用 xterm SGR 鼠标上报 → 以ssh -T运行让 psmux 拿到直接的 stdin/stdout 管道而非 Windows 伪终端→ 附加到指定会话 → 退出时恢复终端原状断线、异常退出时同样生效。想要一条命令的持久客户端再复制 scripts/install-psmux-win.sh 到客户端并运行一次安装器之后直接输入psmux-win -s work即可。两个注意点不要加-t或-tt参数——分配远程 PTY 会把 ConPTY 重新拉回字节通道限制随之复现远程主机上的psmux可执行文件必须在PATH中。字节级原因为什么 Windows 10 不能直接开鼠标普通交互式 SSH 会话中Windows OpenSSH 会把远程进程托管在 ConPTY 内。在 Windows 10 上ConPTY 会吞掉ESC[?1000h、ESC[?1006h等鼠标模式序列——SSH 客户端永远收不到请上报鼠标的指令即使客户端单独启用了这些模式回传的 SGR 滚轮报告如ESC[64;10;5M也会在 psmux 解析之前被 ConPTY 吃掉。SSH 协议中不存在鼠标上报的协商标志ssh -T不分配 PTY正是 OpenSSH 提供的官方机制让 psmux 的 VT 管道直接读取键盘与鼠标字节并用 XTWINOPSESC[18t查询终端尺寸。这就是包装脚本的核心原理。进阶三个强制鼠标开关开关作用PSMUX_FORCE_MOUSE1在低于 22523 的版本上强制启用鼠标上报适合 Server 2022 这类实际可用的宿主PSMUX_FORCE_MOUSE0在任何版本上彻底关闭鼠标含 Windows Terminal 的注册重发PSMUX_FORCE_WHEEL1服务器级最后手段把滚轮转发给所有窗格更推荐使用窗格级选项set-option -p -t %N mouse-force on只豁免指定的单个窗格。详细行为说明见 docs/configuration.md。另外两点值得了解低于 22523 的版本里读取控制台INPUT_RECORD的程序crossterm、ratatui、PSReadLine 等仍能获得点击、拖拽和滚轮事件因为 psmux 会直接向窗格控制台输入缓冲注入 Win32 鼠标事件记录本地 Windows Terminal 会话不受版本门槛限制psmux 会每 30 秒和每次窗口大小变化时重新注册鼠标避免 Windows Terminal 自己悄悄掉注册导致滚轮失灵的问题。常见问题速答Q为什么我 SSH 进去后滚轮变成了上下方向键A这是 Windows Terminal 本地注册掉线后的经典症状issue #597psmux 3.3.9 起会自动重发注册若仍出现检查是否误设了PSMUX_FORCE_MOUSE0。Q点一下就掉线怎么办A说明你的控制台宿主属于安全门槛要保护的对象立即取消PSMUX_FORCE_MOUSE设置即可。QWindows 系统本身的安装要求是什么AWindows 10 或 Windows 11推荐 PowerShell 7也支持 cmd.exe完整安装方式WinGet / Scoop / Chocolatey / Cargo见 README.md。延伸阅读SSH 鼠标完整文档docs/mouse-ssh.md功能与兼容性总览docs/features.md、docs/compatibility.md环境变量与配置选项docs/configuration.md常见问题docs/faq.md【免费下载链接】psmuxTmux on Windows Powershell - tmux for PowerShell, Windows Terminal, cmd.exe. Includes psmux, pmux, and tmux commands. This is native High-Performance Tmux designed for Windows in Rust 项目地址: https://gitcode.com/gh_mirrors/ps/psmux创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考