我正在使用 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")
但这行不通。提前致谢。
最佳答案
连接前需要在Session中设置密码:
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();
然后就可以使用该 channel 执行sftp命令了。
关于java - 如何通过Java提供sftp密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32768531/