2011-10-10 28 views
1

我試圖訪問Android應用程序內另一臺服務器後面的服務器。我可以進入第一臺服務器並執行編輯文件和上傳/下載等操作。問題在於使用rsa密鑰通過ssh進入第二臺服務器。事情是,作爲一個獨立的程序編譯在我的電腦上一切正常,這是我可以訪問第二臺服務器,並盡我所能在第一。當我嘗試將其實現到我的Android應用程序中時,我無法進入第二臺服務器,只有第一臺服務器。我得到一個JSch錯誤:嘗試時驗證失敗,即使我使用相同的密鑰,並且我確信我正在執行像我以前在我的電腦上那樣的操作。這是Android的限制嗎?有沒有解決辦法?我已經將第22端口用於第一臺服務器和第二臺服務器,因爲它之前都有效,如果這是相關的。Android和JSch:在另一個SSH服務器後面的SSH

+0

嘗試[啓用日誌記錄](http://sourceforge.net/apps/mediawiki/jsch/index.php?title=Logging)並查看實際發生的情況。 「身份驗證失敗」錯誤消息非常不清晰。 –

+0

我實現它就像在這個例子中,除了我將它保存到一個日誌文件而不是System.err,它讀取:INFO:從_hostname_端口22斷開連接。 – Choobs

+0

_hostname_表示我無法進入的第二臺服務器明確。 – Choobs

回答

1

因此,原來這是在服務器上的限制,爲安全起見...我將不得不作出一個RESTful Web應用程序與第二臺服務器進行通信。

+0

感謝您回來並提供答案,以便我們知道問題所在。 –

0

你必須使用的方法JSch.addIdentity看到類似的帖子之一:JSch: How to ssh into a server using ssh-keys

+0

這實際上是我問的,它已經解決了,但問題在於它不適用於Android。該方法在我爲Windows製作的原型應用程序中工作得非常好。當我試圖在我的Android應用程序中實現它時,我得到Auth Fail錯誤。我正在添加一個記錄器來查看是否可以從系統獲得更具體的消息。 – Choobs