Rumah > Java > javaTutorial > Bagaimana untuk Menyelesaikan Ralat 'UnknownHostKey' Apabila Menggunakan Perpustakaan SFTP JSch?

Bagaimana untuk Menyelesaikan Ralat 'UnknownHostKey' Apabila Menggunakan Perpustakaan SFTP JSch?

Susan Sarandon
Lepaskan: 2024-12-05 12:37:14
asal
330 orang telah melayarinya

How to Resolve the

Menyelesaikan Isu Java UnknownHostKey dengan Perpustakaan SFTP JSch

Apabila menggunakan perpustakaan SFTP Java (JSch), anda mungkin menghadapi ralat "UnknownHostKey" disebabkan pemeriksaan kunci hos yang ketat. Ralat ini timbul kerana JSch tidak dapat mengesahkan ketulenan kunci hos yang dibentangkan oleh pelayan jauh.

Punca Punca:
Ralat berlaku apabila anda cuba menyambung ke SFTP jauh pelayan buat kali pertama. JSch melakukan semakan kunci hos untuk memastikan anda menyambung ke pelayan yang betul dan bukan kepada penyamar yang berniat jahat.

Penyelesaian:
Terdapat dua pendekatan biasa untuk menyelesaikan isu ini:

1. Melangkau Semakan Kunci Hos:
Kaedah ini tidak disyorkan, kerana ia menjejaskan keselamatan sambungan anda. Walau bagaimanapun, jika anda pasti bahawa kunci hos dipercayai, anda boleh melumpuhkan semakan kunci hos dengan menetapkan sifat "StrictHostKeyChecking" kepada "tidak" sebelum menyambung ke pelayan:

java.util.Properties config = new java.util.Properties();
config.put("StrictHostKeyChecking", "no");
session.setConfig(config);
Salin selepas log masuk

2. Menambah Kunci Hos Jangkaan:
Untuk keselamatan yang dipertingkatkan, adalah dinasihatkan untuk menambah kunci hos yang dijangkakan pada repositori kunci hos JSch. Ini boleh dicapai menggunakan salah satu kaedah berikut:

Jana Fail Hos yang Dikenali:

  • Laksanakan arahan berikut daripada pelayan *nix:

    ssh-keyscan example.com > known_hosts
    Salin selepas log masuk
  • Letakkan fail "known_hosts" yang dihasilkan di lokasi yang boleh diakses oleh JSch.
  • Gunakan "JSch.setKnownHosts(path)" untuk menunjuk ke fail:

    JSch.setKnownHosts("path/to/known_hosts");
    Salin selepas log masuk

Tambah Kunci Hos Secara Manual:

  • Dapatkan semula kunci hos daripada pelayan menggunakan alat SSH (cth., "ssh-keyscan").
  • Buat contoh JSch "HostKey" menggunakan kunci yang diambil.
  • Tambahkan HostKey pada repositori kunci hos:

    JSch jsch = new JSch();
    HostKey hostKey = jsch.getHostKeyRepository().add(hostname, publicKey, algName);
    Salin selepas log masuk

Tambahan Nota:

Pastikan kunci hos yang anda berikan sepadan dengan kunci sebenar yang dibentangkan oleh pelayan jauh. Jika kekunci tidak sepadan, sambungan masih akan gagal disebabkan oleh pengecualian keselamatan.

Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Ralat 'UnknownHostKey' Apabila Menggunakan Perpustakaan SFTP JSch?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan