Другой вариант - использовать ожидаемый скрипт.Создайте файл, содержащий следующее, и сохраните его как / some / path / scp_expect.Этот файл должен принадлежать пользователю, который будет выполнять код Java.
#!/usr/bin/expect -f
spawn scp example.tar.gz username@192.168.0.131 /root/new
expect "assword:"
send -- "password\r"
expect eof
Измените пароль соответствующим образом.Сделайте файл исполняемым:
chmod 700 /some/path/scp_expect
Теперь вместо этого вызовите ожидаемый скрипт из вашего Java-кода:
String[] commands = new String[]{"bash", "-c", "/some/path/scp_expect"};
Если он не работает, измените "assword:"
на строку, которая являетсяотображается, когда вы повысили свой пароль.
Недостатком этой опции является то, что ваш пароль находится в открытом виде в сценарии, поэтому убедитесь, что вы учитываете последствия для безопасности, связанные с этим.Я бы предпочел сам использовать метод аутентификации по ключу.