ホームページ >Java >&#&チュートリアル >Java SFTP (JSch) の「UnknownHostKey」エラーを解決する方法は?

Java SFTP (JSch) の「UnknownHostKey」エラーを解決する方法は?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-02 00:18:10896ブラウズ

How to Solve the

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。