我正在使用JSCH API从java调用shell命令。我试图像这样调用sftp命令:
Channel channel = (ChannelShell)getSession().openChannel("shell");
channel.connect();
PrintStream out = new PrintStream(channel.getOutputStream());
out.println("#!/bin/bash");
out.println("sftp akumar@sindh");
out.flush();
在Java控制台上,我看到它正在连接到此sindh
服务器,然后它要求输入密码。
Connecting to sindh...
akuamr@sindh's password:
我如何提供密码。我试过了
out.println("sftp akumar@sindh");
out.println("password123")
但这不会成功。提前谢谢。
答案 0 :(得分:0)
您需要在连接之前在会话中设置密码:
JSch jsch=new JSch();
Session session = jsch.getSession("akumar", "sindh");
session.setPort(22);
session.setPassword("password123");
session.connect();
ChannelSftp channel = (ChannelSftp) session.openChannel("sftp");
channel.connect();
然后您可以使用该通道执行sftp命令。