如何通过Java提供sftp密码

时间:2015-09-24 18:34:42

标签: java sftp jsch

我正在使用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")

但这不会成功。提前谢谢。

1 个答案:

答案 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命令。