JSch SFTP ライブラリの Java UnknownHostKey エラーを解決する
Java SFTP を (JSch を使用して) 操作しているときに、「java.net」が発生する場合があります。 .UnknownHostException: UnknownHostKey」エラー。これは、ホスト キーのチェックが有効になっているために発生します。これにより、セキュリティ上の理由から不明なホストへの SSH 接続が妨げられます。
解決策
このエラーを解決するには、次の 2 つのオプションがあります。
オプション 1: ホスト キー チェックを無効にする (無効ではありません)推奨)
重要な注意事項: これは安全なソリューションではないため、テスト目的でのみ使用してください。
java.util.Properties config = new java.util.Properties(); config.put("StrictHostKeyChecking", "no"); session.setConfig(config);
オプション 2:予想されるホスト キーのセットアップ (強く推奨)
このアプローチにより、接続中のセキュリティが確保されます。 SSH サーバー。
ssh-keyscan の使用 (Linux/Unix)
ssh-keyscan example.com > known_hosts
Windows の使用
Windows の入手Win32-OpenSSH プロジェクトまたは Git からの ssh-keyscan のビルドWindows の場合は、同じ手順に従います。
known_hosts ファイルを生成したら、JSch コードでそれを参照します。
JSch jsch = new JSch(); jsch.setKnownHosts("/path/to/known_hosts");
または、次のこともできます。
JSch.getHostKeyRepository().add(...) // Provide the expected host key manually
これらのメソッドを利用すると、セキュリティを維持しながら UnknownHostKey エラーを回避できます。 Java SFTP 操作。ただし、ホスト キーのチェックを無効にすることはテスト目的でのみ推奨され、運用環境では避けるべきであることを覚えておくことが重要です。
以上がJSch SFTP での Java `UnknownHostException: UnknownHostKey` エラーを解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。