java - 如何通过Java提供sftp密码

标签 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")

但这行不通。提前致谢。

最佳答案

连接前需要在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/

相关文章:

java - 删除特定监听器

java - 无法通过 Spring Boot 通过 STOMP 连接到 ActiveMQ 代理

sockets - com.jcraft.jsch.JSchException : java.net.ConnectException:连接被拒绝:连接

java - 如果我从多个线程使用 JSch,我应该如何使用它

java - "com.jcraft.jsch.JSchException: Auth fail"使用工作密码

java - 使用 spring-data-mongodb 进行审计

JavaToWS 错误 : java. lang.NoClassDefFoundError

java - SFTP 服务器在 Apache Mina SSHD 中设置用户/密码

linux - 如果文件部分上传,sftp(在 unix 中)会返回什么错误?

ssh - 将 Ed25519 转换为 RSA 指纹(或如何查找 SSH 指纹)