Я присоединился к проекту, который использует 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 был установлен.
Команда, безусловно, должна быть короче, но она не превышает лимит ОС.Некоторое время я искал ответ: почему это происходит?