ホームページ > Java > &#&チュートリアル > JSch の SFTP ライブラリを使用するときに発生する「UnknownHostKey」エラーを解決するにはどうすればよいですか?

JSch の SFTP ライブラリを使用するときに発生する「UnknownHostKey」エラーを解決するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-12-05 12:37:14
オリジナル
330 人が閲覧しました

How to Resolve the

JSch SFTP ライブラリでの Java UnknownHostKey の問題の解決

Java SFTP ライブラリ (JSch) を使用すると、「UnknownHostKey」エラーが発生する場合があります厳格なホストキーチェックのため。このエラーは、JSch がリモート サーバーによって提示されたホスト キーの信頼性を検証できないために発生します。

根本原因:
リモート SFTP に接続しようとすると、エラーが発生します。初めてのサーバー。 JSch はホスト キー チェックを実行して、悪意のある偽者ではなく正しいサーバーに接続していることを確認します。

解決策:
この問題を解決するには、2 つの一般的なアプローチがあります。

1.ホストキーチェックのスキップ:
接続のセキュリティが危険にさらされるため、この方法は推奨されません。ただし、ホスト キーが信頼できることが確実な場合は、サーバーに接続する前に「StrictHostKeyChecking」プロパティを「no」に設定することで、ホスト キーのチェックを無効にすることができます:

java.util.Properties config = new java.util.Properties();
config.put("StrictHostKeyChecking", "no");
session.setConfig(config);
ログイン後にコピー

2。予想されるホスト キーの追加:
セキュリティを強化するために、予想されるホスト キーを JSch のホスト キー リポジトリに追加することをお勧めします。これは、次のいずれかの方法を使用して実現できます:

既知のホスト ファイルの生成:

  • *nix サーバーから次のコマンドを実行します。

    ssh-keyscan example.com > known_hosts
    ログイン後にコピー
  • 生成された「known_hosts」ファイルをJSch にアクセスできる場所。
  • 「JSch.setKnownHosts(path)」を使用してファイルを指します:

    JSch.setKnownHosts("path/to/known_hosts");
    ログイン後にコピー

ホストの追加鍵手動:

  • SSH ツール (「ssh-keyscan」など) を使用してサーバーからホスト キーを取得します。
  • 取得したキーを使用して JSch "HostKey" インスタンスを作成します。 key.
  • HostKey をホスト キーに追加しますリポジトリ:

    JSch jsch = new JSch();
    HostKey hostKey = jsch.getHostKeyRepository().add(hostname, publicKey, algName);
    ログイン後にコピー

追加メモ:

指定したホスト キーがリモート サーバーによって提示された実際のキーと一致することを確認してください。キーが一致しない場合でも、セキュリティ例外により接続は失敗します。

以上がJSch の SFTP ライブラリを使用するときに発生する「UnknownHostKey」エラーを解決するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート