我想從另一臺ssh服務器後面ssh進入服務器。網關服務器需要用戶名/密碼,我可以這樣做。我正在使用隧道進入下一臺服務器,但這需要只有一個ssh密鑰。我通過PuTTY生成了密鑰,所以它存在於我的用戶名中,但我不確定如何爲我的Java程序檢索它。它是一種配置嗎?即setConfig(「userauth.publickey」,「com.jcraft.jsch.UserAuthPublicKey」),那麼我該如何使用這個或其他東西?文檔似乎很少,我很感激任何幫助。我試過的任何東西都會給我一個錯誤:當我連接此會話時出現「驗證失敗」JSch:如何使用SSH密鑰ssh進入服務器
謝謝!
我使用的隧道方法是:http://sourceforge.net/apps/mediawiki/jsch/index.php?title=ProxySSH非常感謝寫這篇文章的人!
對於上下文,我想從我的Android手機讀取/寫入學校的服務器。
由於第二個SSH不接受用戶名,因此在實例化會話時應該如何使用該字段?一個空字符串或null?即jsch.getSession(WHAT_GOES_HERE?,主機名,22); – Choobs
我不斷收到Auth Fail錯誤。我有本地存儲的id_rsa和id_rsa.pub,我使用PuTTYgen導出爲OpenSSH密鑰,然後在addIdentity(...)中使用它。我錯過了什麼嗎?在第一臺服務器上有一個/.ssh/authorized_keys文件,它是id_rsa.pub的副本,如果相關的話。 – Choobs
您*一直*需要SSH用戶名 - 如果沒有這個,您將無法登錄到服務器。 (畢竟,發送的命令必須在某個本地用戶帳戶中執行。)和'。ssh/authorized_keys'文件(包含允許登錄的公共密鑰)必須位於用戶的主目錄中,您要登錄。 –