使用JSch 解決Java SFTP 中的UnknownHostKey 錯誤
當JSch 在建立SFTP 連接時遇到未知主機時,會出現未知金鑰時,會出現未知主機“UnknownHostKey”錯誤。要解決此問題,您需要向 JSch 提供預期的主機金鑰以進行身份驗證。
設定 StrictHostKeyChecking
最初,您嘗試透過設定「停用主機金鑰檢查」在連接到 SFTP 伺服器之前,將「StrictHostKeyChecking」設定為「no」。這是一個安全風險,除非絕對必要,否則不應這樣做。
正確的方法:設定預期的主機金鑰
相反,您應該為JSch 進行驗證。有兩種主要方法可以實現此目的:
使用known_hosts檔案
ssh-keyscan example.com > known_hosts JSch.setKnownHosts("path/to/known_hosts");
使用 HostKeyRepository
// Create HostKey from public key HostKey key = new HostKey("example.com", "rsa", ...); // Add HostKey to repository JSch.getHostKeyRepository().add(key);
注意:
注意:兩種方法都確保JSch 可以使用預期的主機金鑰驗證SFTP伺服器的真實性,從而解決“UnknownHostKey”錯誤。以上是如何使用 JSch 解決 Java SFTP 中的「UnknownHostKey」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!