xshell能连上远程sftp,Java内却连不上

有没有大佬能解决下

public static boolean initChannel(String host,Integer port,String userName,String password){
        try {
            JSch jSch = new JSch();
            sshSession = jSch.getSession(userName,host,port);
            sshSession.setPassword(password);

            Properties sshConfig = new Properties();
            sshConfig.put("StrictHostKeyChecking", "no");
            sshSession.setConfig(sshConfig );
            //sshSession.setTimeout(60);
            sshSession.connect();

            Channel channel = sshSession.openChannel("sftp");
            channel.connect();

            sftp = (ChannelSftp) channel;
            return true;
        } catch (JSchException e) {
            e.printStackTrace();
            logger.error("sftp连接失败,host:{},port:{}",host,port,e);
            return false;
        }
    }

打断点发现是卡在sshSession.connect()方法一直过不去,在这段
图片说明
而且设置了timeout时间也不会报超时错误,就一直卡在这里

2个回答

对比了你的代码和我们开发过程中用的代码,完全一致,不合理的,不管怎么样,最后即使错误也应该有异常才对。
在 return true 之前打一下日志,看看到底执行到哪一步了。
还有,检查下 IP 和端口,sftp 端口是 22 。

weixin_40147370
weixin_40147370 我们的端口不是22,是第三方提供给我们的
大约 2 个月之前 回复

1、核对ip、端口、用户名、密码
2、关闭Linux服务器的防火墙

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!