Я хотел бы использовать команду "scp" из моего Java-приложения Jsch и ChannelExec.Команда в порядке, но как передать мой пароль?
Непосредственно на сервере это будет выглядеть так:
$ scp user@server:/myPath/* .
$ user@server's password:
(informations on files copied)
Команда и пароль находятся в 2 отдельных строках.
Чтобы восстановить это в Java, я сделал это:
ChannelExec channelExec = (ChannelExec) session.openChannel("exec"); //$NON-NLS-1$
channelExec.setCommand(scpCommand);
channelExec.connect();
try (OutputStream outputStream = channelExec.getOutputStream()) {
pause(5000);
outputStream.write((password + "\n").getBytes()); //$NON-NLS-1$
outputStream.flush();
}
(read result and terminate session)
Но, как вы можете догадаться, это не сработает.
У вас есть подсказки, как решить эту проблему?Должен ли я передать пароль в команде, отделенный специальным символом?('\ n' может быть, я не знаю) Или есть другое решение?
Спасибо за ваше время!