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);
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
Gunakan "JSch.setKnownHosts(path)" untuk menunjuk ke fail:
JSch.setKnownHosts("path/to/known_hosts");
Tambah Kunci Hos Secara Manual:
Tambahkan HostKey pada repositori kunci hos:
JSch jsch = new JSch(); HostKey hostKey = jsch.getHostKeyRepository().add(hostname, publicKey, algName);
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!