ホームページ >Java >&#&チュートリアル >Java SFTP (JSch) の「UnknownHostKey」エラーを解決する方法は?
Java SFTP (JSch) の UnknownHostKey エラーについて
Java SFTP ライブラリ JSch の使用中に「UnknownHostKey」エラーが発生しました。このエラーは、JSch がリモート ホストの公開キーの信頼性を検証できないことを示します。この問題を解決するには、根本的な原因を理解することが重要です。
原因:
JSch はリモート ホストに接続するときに、ホストの公開キーをリストと比較します。既知のホストキーの。リモート ホストのキーが既知のホスト リストに見つからない場合は、ユーザーに確認を求め、キーをリストに追加するかどうかを尋ねます。デフォルトでは、JSch の「StrictHostKeyChecking」が有効になっており、不明なキーまたは未検証のキーを持つホストに自動的に接続することが防止されます。
解決策:
1.ホスト キーの検証を無視する (非推奨):
Properties config = new Properties(); config.put("StrictHostKeyChecking", "no"); session.setConfig(config);
このアプローチにより、JSch はホスト キーをチェックせずにリモート ホストに接続できますが、これは安全な方法ではなく、信頼できる環境でのみ使用する必要があります。環境。問題の根本原因は解決されません。
2.ホスト キー検証の構成:
オプション 1: 既知のホスト ファイルを使用する
JSch.setKnownHosts("/path/to/known_hosts");
このファイルには、既知のホスト キーとそれに対応するフィンガープリントのリストが含まれています。リモート ホストに接続するとき、JSch はホストの公開キーを既知のホスト ファイル内のキーと比較します。一致するものが見つかった場合、ユーザーの確認なしで接続が続行されます。
オプション 2: ホスト キーを手動で追加
HostKey knownHostKey = new HostKey("127.0.0.1", 22, "rsa", "A2:39:3F:44:88:E9:1F:D7:D1:71:F4:85:98:FB:90:DC"); session.getHostKeyRepository().add(knownHostKey, session);
この方法では、予想されるホスト キーを手動で提供できます。リモート ホストのホスト キーを使用して、ユーザー プロンプトを表示せずに JSch が接続を検証できるようにします。
これらのメソッドのいずれかを実装すると、次のことができます。 「UnknownHostKey」エラーを解決し、リモート ホストへの安全な SFTP 接続を確立します。
以上がJava SFTP (JSch) の「UnknownHostKey」エラーを解決する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。