У меня есть файл /etc/issue, содержащий некоторые цветовые коды ANSI на плате разработки Linux. Когда я подключаюсь с последовательного терминала, все отображается отлично. Однако, когда я подключаюсь с SSH, символ ESC заменяется на "\033" и не распознается принимающей стороной, тем самым предотвращая вступление в силу кода ANSI. Как это исправить?
решение1
Как это исправить?
Вы этого не делаете. Большинство клиентов SSH (конечно, OpenSSH) намеренно не допускают вывод кодов ANSI в баннере перед входом в систему, чтобы ненадежный сервер не мог потенциально отправить клиенту вредоносные коды — вы ничего не можете сделать, чтобы изменить это со стороны сервера (это своего родасмысл).
Предложения:
Сохраните две копии баннера: одну затейливую в /etc/issue для входа через консоль/последовательный порт и простой монохромный баннер где-то вроде /etc/ssh/issue.net для SSH (путь можно настраивать).
Прекратите использовать баннер SSH для графики в целом. (Честно говоря, большой баннер перед подключением становитсяраздражающий(Если вам часто приходится подключаться к серверу по протоколу SSH.) Вместо этого переместите красивые логотипы в файл /etc/motd, создаваемый после входа в систему.