ホームページ >Java >&#&チュートリアル >JSch を使用して Java SFTP の「UnknownHostKey」エラーを解決する方法

JSch を使用して Java SFTP の「UnknownHostKey」エラーを解決する方法

Barbara Streisand
Barbara Streisandオリジナル
2024-12-21 04:05:09413ブラウズ

How to Resolve the

JSch を使用した Java SFTP の UnknownHostKey エラーの解決

JSch が SFTP 接続の確立中に不明なホスト キーに遭遇すると、「UnknownHostKey」エラーが発生します。この問題を解決するには、認証に必要なホスト キーを JSch に提供する必要があります。

StrictHostKeyChecking の設定

最初に、「」を設定してホスト キーのチェックを無効にしようとしました。 SFTP サーバーに接続する前に、「StrictHostKeyChecking」を「no」に設定してください。これはセキュリティ上のリスクであり、絶対に必要な場合を除き、実行しないでください。

適切なアプローチ: 予想されるホスト キーの設定

代わりに、予想されるホスト キーを設定する必要があります。検証する JSch。これを実現するには、主に次の 2 つの方法があります。

known_hosts ファイルを使用する

  • 「ssh-keyscan」を使用して「.ssh/known_hosts-like」ファイルを生成するコマンド。
  • 次を使用してこのファイルへのパスを設定します。 SFTP セッションを確立する前に「JSch.setKnownHosts()」を実行します。
ssh-keyscan example.com > known_hosts
JSch.setKnownHosts("path/to/known_hosts");

HostKeyRepository の使用

  • 期待される公開キー。
  • ホストキーを"JSch.getHostKeyRepository().add()" を使用した 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 中国語 Web サイトの他の関連記事を参照してください。

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