jsch - com.jcraft.jsch.JSchException : failed to send sftp request

标签 jsch

基于 WinSCP 的相同连接,使用帐户名、密码和私钥进行连接。但是尝试从代码中不断收到此异常。

代码:

try
{
    session.connect();
    System.out.println("session is alive:" + session.isConnected());
    channel = session.openChannel("sftp");
    channel.connect();

    channelSftp = (ChannelSftp) channel;
    channelSftp.connect();
    channelSftp.chmod(777, depDir);

}
catch (Exception e1)
{
    e1.printStackTrace();
    System.out.println("Manual Exception in updateDepositedFilePermission:" + CommonUtil.getExceptionString(e1));
}

输出:

session is alive:true
Manual Exception in updateDepositedFilePermission:com.jcraft.jsch.JSchException: failed to send sftp request
        at com.jcraft.jsch.RequestSftp.request(Unknown Source)
        at com.jcraft.jsch.ChannelSftp.start(Unknown Source)
        at com.jcraft.jsch.Channel.connect(Unknown Source)
        at com.app.sftp.CheckFTP.main(CheckFTP.java:730)

session is alive:true
com.jcraft.jsch.JSchException: failed to send sftp request
        at com.jcraft.jsch.RequestSftp.request(Unknown Source)
        at com.jcraft.jsch.ChannelSftp.start(Unknown Source)
        at com.jcraft.jsch.Channel.connect(Unknown Source)
        at com.app.sftp.CheckFTP.main(CheckFTP.java:730)

最佳答案

不确定这是主要问题,但您调用了 Channel.connect() 两次。

首先:

channel.connect();

这里再说一遍:

channelSftp.connect();

删除第二个调用。

关于jsch - com.jcraft.jsch.JSchException : failed to send sftp request,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33823973/

相关文章:

java - 在Java中使用Jsch和Sshj的RSA SSH2私钥问题

java - JSCH session 连接问题

java - JSch 记录器 - 我可以在哪里配置级别

java - 如何使用 jsch 使用 base64 编码将文件传输到 sftp

java - sftp 和 ftp 的浏览目录选项

java - 将 JSch 的标准 iostream 重定向到 primefaces 的终端

java - 如何使用 channel.connect(); 对远程数据库执行 “insert into” 查询;

java - 使用 JSch 0.1.48 时出现 AuthFail 异常,但在 0.1.49 及更高版本中使用密码身份验证时不会出现异常

android - Android 上通过 JSCH 的基本 SSH 连接

ssh - 如何像PuTTY一样使用JSch通过Windows Active Directory身份验证来SSH Linux服务器