2014-02-22 97 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

問題是由於網絡的拓撲和通信方的權限。如果您面臨同樣的問題,請考慮這些問題。