如何使用 Win32-OpenSSH 和 Putty 启用颜色?

如何使用 Win32-OpenSSH 和 Putty 启用颜色?

概括

Win32-OpenSSH 中似乎存在一个错误,导致某些终端仿真器(例如 PuTTY 和 mintty)无法显示颜色。

Win32-OpenSSH 似乎将颜色转义序列“\033[32m\033[40mtest”替换为“\033[0;39;24;27;32;40;mtest”,问题似乎出在 m 之前的最后一个分号。删除这个分号后,颜色就可以正确显示了。

细节

我按照以下说明安装了 Win32-OpenSSH-Win64(版本 0.0.24.0)https://github.com/PowerShell/Win32-OpenSSH/wiki/Install-Win32-OpenSSH

我设置

Computer\HKEY_LOCAL_MACHINE\SOFTWARE\OpenSSH\DefaultShell="C:\Program Files\GIT\bin\bash.exe"  

Computer\HKEY_LOCAL_MACHINE\SOFTWARE\OpenSSH\DefaultShellCommandOption="-c"

使用以下方式登录我的机器

ssh localhost

我没有使用 PUTTY 获得彩色输出,也没有使用“Git Bash for Windows”获得彩色输出,但我使用本机“cmd.exe”和连接到同一本地服务器的“Bash on Ubuntu on Subsystem for Linux”获得彩色。

问题似乎与不寻常的转义序列有关。在 PuTTY 中记录所有会话输出显示以分号结尾的转义序列:“\033[0;39;24;27;32;40;mtest”,而 PUTTY 似乎无法处理它们。没有最后分号的转义序列,例如“\033[0;39;24;27;32;40mtest”,PUTTY 可以正确处理。

这些不常见的转义序列似乎是由 Win32-OpenSSH 引入的。相比之下,Bitvise SSH 服务器会生成转义序列“\033[32m\033[40mtest”。

相关内容