Я пишу код Java с использованием Jsch, в котором мне нужно выполнить scp между двумя удаленными блоками UNIX.
Я попытался выполнить команду scp так же, как и обычную команду из моего кода Java, например:
JSch jsch=new JSch();
Session session=jsch.getSession("user", "host", 22);
UserInfo ui=new MyUserInfo();
session.setUserInfo(ui);
session.setPassword("pwd");
session.connect();
Channel channel=session.openChannel("exec");
((ChannelExec)channel).setCommand("scp user@mademo.org:/home/user/demo.csv /home/user/demo.csv");
channel.setInputStream(null);
((ChannelExec)channel).setErrStream(System.err);
InputStream in=channel.getInputStream();
channel.connect();
//Printing operations
channel.disconnect();
session.disconnect();
Вместо запроса пароля для user@mademo.org какЯ ожидал.Я получаю только ошибки:
Permission denied, please try again.
Permission denied, please try again.
Permission denied (publickey,gssapi-with-mic,password).
exit-status: 1
При непосредственном выполнении команды в окне UNIX я обнаружил следующее:
scp запрашивает пароль для подключения к удаленному компьютеру ... однако, используя этокод, он не запрашивает пароль.Поэтому он пытается выполнить scp без пароля и пытается трижды (флаг NumberoOFAttempts) и выдает сообщения об ошибках ...
Я хочу знать, как сделать так, чтобы scp по крайней мере подсказывал ввести что-то вместо того, чтобы просто не брать пароль... Я использовал реализацию по умолчанию класса MyUserInfo, приведенную в примерах jsch для моего кода ...
Или
Есть ли способ предоставить пароль вместе с командой scp ??Я стараюсь по возможности избегать использования комбинаций закрытых и открытых ключей ..
РЕДАКТИРОВАТЬ: Из поста Пауло .. Теперь я добавил channel.setPty (true), чтобы получить псевдо-терминал для команды, и этопросит у меня ввести пароль, а не автоматически.
Как мне указать пароль сейчас ... Я попытался набрать его в консоли, но он не принимает и продолжает ждать ввода пользователя ...Я попытался установить его с помощью channel.setInputStream (pwdbytes);но он продолжает ждать команды и не принимает ввод ..
Спасибо за любую помощь относительно этого ...