У нас есть приложение Node.js, которое мы пытаемся создать скрипт для управления сервером Windows 2012R2.Мы установили OpenSSH и внесли необходимые изменения, чтобы он вызывал powershell.exe вместо cmd.exe для процессора терминала.Это все работает отлично.Мы можем SSH с сервера Linux, на котором запущено приложение Node.js, и все на 100%.
Теперь мы добавляем пакеты ssh2 / ssh2shell npm и пытаемся запускать команды через наше приложение.Мы определенно подключаемся и получаем ответ при отправке команд.Однако соединение / ответ искажены с помощью escape-последовательностей, которые, насколько я могу судить, являются либо кодами VT100 / Xterm (например, [4; 15H - позиция в 4-й строке, 15-я позиция).Это невероятно сложно анализировать.
Хуже, когда мы отправляем команду на соединение - например, "get-childitem", в результате получается, что в результате эхо возвращается, убирая по одному символу за раз:
Connected to server.mydomain.com\n[4;15H
[4;16Het-childitem
[4;17H[4;17Ht-childitem
[4;18H[4;18H-childitem
[4;19H[4;19Hchilditem
[4;20H[4;20Hhilditem
[4;21H[4;21Hilditem
[4;22H[4;22Hlditem
[4;23H[4;23Hditem
[4;24H[4;24Hitem
[4;25H[4;25Htem
[4;26H[4;26Hem
[4;27H[4;27Hm
[4;28H[4;1H\n
Он действует как тупой терминал.Кодированные SSH-соединения с другими устройствами Linux, похоже, дают результаты точно так, как ожидалось.Я пробовал все виды вещей, чтобы получить чистый вывод, и не смог на этом этапе.
Любая помощь будет принята с благодарностью.