Команда, переданная через SSH из Java, обрезается после 900 символов в Windows - PullRequest
0 голосов
/ 12 мая 2018

Я присоединился к проекту, который использует Java для выполнения команд SSH, я пытаюсь запустить набор тестов на localhost.Короткие команды выполняются правильно.Однако запуск более длинных команд является проблемой.Команда SSH создается, она выглядит следующим образом:

ssh -v username@localhost bash -c "long-command"

Где длинная команда имеет длину 2000 символов - она ​​содержит список закодированных значенийи я не могу изменить этот факт без серьезных изменений в архитектуре проекта.В Java длинная команда отображается правильно и не обрезается, насколько я могу проверить с помощью отладчика, она передается в ProcessBuilder .Однако в журнале ошибок выполнения команды SSH:

debug1: Sending command: bash -c long-command-cut-in-half

Длина команды (измеряется начиная с ключевого слова bash) может достигать только 900 символов.Все, что за этим номером, потеряно, что делает команду недействительной.

Я использую Bitvise SSH Server в Windows, ssh.exe поставляется с OpenSSH, установленным как дополнительная функция в Windows 10 - результаты были такими же, как при использовании ssh.exe, поставляемого с Git, - и Cygwin был установлен.

Команда, безусловно, должна быть короче, но она не превышает лимит ОС.Некоторое время я искал ответ: почему это происходит?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...