Scenerio: Я хотел бы запускать команды на удаленных машинах из Java-программы через ssh (я использую OpenSSH на моей машине разработки). Я также хотел бы установить ssh-соединение, передав пароль, а не настраивая ключи, как я сделал бы с помощью функции «ожидается».
Проблема: при попытке выполнить «ожидаемый» пароль, например, процесс, созданный с помощью ProcessBuilder, не может увидеть запрос пароля. При выполнении обычных команд не-ssh (например, «ls») я могу получать потоки и взаимодействовать с ними очень хорошо. Я объединяю стандартную ошибку и стандартную в один поток с redirectErrorStream(true);
, поэтому я не пропускаю его в стандартной ошибке ... Когда я запускаю ssh с опцией -v, я вижу все записи в потоке, но я не вижу подсказки. Я впервые пытаюсь использовать ProcessBuilder для чего-то подобного. Я знаю, что было бы проще использовать Python, Perl или другие, но мой босс хочет использовать то, что мы пытаемся вернуть (удаленные файлы журналов и запуск скриптов), в рамках существующей Java-программы, поэтому я застрял.
Заранее спасибо за помощь!