2014-01-11 42 views
0

我正在構建一個使用SSH從其他遠程服務器獲取信息的Web服務(Sevlets)。 爲了簡單起見,我選擇使用Apache commons exec庫來執行ssh,而不是像JSch那樣在Java中使用SSH客戶端實現。 此實現在我的開發環境中正常工作,但是當我將其部署到遠程Web服務器(帶有OpenSSH客戶端的Red Hat Server)時,它會失敗並顯示錯誤消息。無法從Servlet執行SSH

ssh_exchange_identification:連接被遠程主機關閉

但是當我ssh到Web服務器並重新啓動Apache Tomcat的後臺程序,在我的servlet代碼中的SSH工作,直到我與web終止我的SSH會話服務器,然後以上面的消息失敗。 PS:我寧願儘可能避免使用Java SSH客戶端實現,因爲我環境中的ssh設置不是直接的,它涉及到建立隧道。 這樣的設置已經完成使用ssh配置文件,因此我想盡可能使用現有的設置。

回答

1

請檢查[Ganymed SSH庫](http://www.ganymed.ethz.ch/ssh2/)是否會對您有所幫助。我已經在我的一個項目中使用過它,並發現它很容易並且很有幫助。

+0

@Idris如果我無法解決此問題,我將使用Java SSH客戶機實現。 –