2014-02-22 70 views
0

我试图连接到我无法通过JSch管理的远程设备,但我可以使用具有相同凭据的WinSCP客户端进行连接。可以通过WinSCP打开SFTP连接,但不能与JSch

该应用程序是一个基于J2EE的企业应用程序,它运行在JBoss AS 7.1.1上的Windows服务器上,我尝试从Quartz作业连接SFTP服务器。下面是我用来验证SFTP登录的代码。

try { 
    Session session = jsch.getSession("username", "host", 22); 
    session.setConfig("StrictHostKeyChecking", "no"); 
    session.setPassword("password"); 
    session.connect(); 

    Channel channel = session.openChannel("sftp"); 
    ChannelSftp channelSftp = (ChannelSftp) channel;     
    channel.connect(); 
    session.disconnect(); 
    channelSftp.disconnect(); 

} catch (JSchException e) { 
    log("Cannot make connection to FTP server "); 
    e.printStackTrace(); 
} 

我越来越

com.jcraft.jsch.JSchException:java.net.ConnectException:连接被拒绝:在session.connect连接
异常();

我使用0.1.50版本JSch

,当我跑在开发环境中,该代码会出现另一种不一致的;我可以使用SFTP连接到服务器。

你能帮我指出这种行为的可能原因吗?

+0

分享您的WinSCP配置或甚至更好的WinSCP日志文件可能会有所帮助。 –

+0

谢谢@MartinPrikryl,问题解决了,但我忘了添加一条评论。这是因为一些许可问题而发生的。 –

+0

所以请提交决议作为解决这个问题的答案。 –

回答

0

问题是由于网络的拓扑和通信方的权限。如果您面临同样的问题,请考虑这些问题。