1

Резюме

Кажется, в Win32-OpenSSH есть ошибка, которая не позволяет отображать цвета в некоторых эмуляторах терминала, таких как PuTTY и mintty.

Win32-OpenSSH, по-видимому, заменяет последовательность выхода цвета "\033 [32m\033 [40mtest" на "\033 [0; 39; 24; 27; 32; 40; mtest", и проблема, похоже, заключается в последней точке с запятой перед м. Сняв эту точку с запятой, цвета отображаются правильно.

подробности

Я установил 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 для Windows", но я получаю цвета с помощью «cmd.exe» и "Bash в Ubuntu в подсистеме для Linux", подключающихся к тому же локальному серверу.

Кажется, проблема связана с необычными escape-последовательностями. Регистрация всех выходных данных сеанса в PuTTY показывает escape-последовательности, которые заканчиваются точкой с запятой: "\033 [0; 39; 24; 27; 32; 40; mtest", и PUTTY, похоже, не в состоянии их обработать. Последовательности перехода без последней точки с запятой, например, "\033 [0; 39; 24; 27; 32; 40mtest", обрабатываются PUTTY правильно.

Эти необычные escape-последовательности, кажется, введены Win32-OpenSSH. В отличие от этого, Bitvise SSH Server создает управляющую последовательность "\033 [32m\033 [40mtest" ".

0