Menyelesaikan Ralat Java UnknownHostKey dalam Perpustakaan SFTP JSch
Apabila bekerja dengan Java SFTP (menggunakan JSch), anda mungkin menghadapi 'java.net .UnknownHostException: Ralat UnknownHostKey'. Ini berlaku kerana semakan kunci hos didayakan, yang menghalang sambungan SSH ke hos yang tidak diketahui atas sebab keselamatan.
Penyelesaian
Untuk menyelesaikan ralat, anda mempunyai dua pilihan:
Pilihan 1: Lumpuhkan Pemeriksaan Kunci Hos (Tidak Disyorkan)
Peringatan Penting: Ini bukan penyelesaian yang selamat dan hanya boleh digunakan untuk tujuan ujian.
java.util.Properties config = new java.util.Properties(); config.put("StrictHostKeyChecking", "no"); session.setConfig(config);
Pilihan 2: Sediakan Kunci Hos yang Dijangka (Sangat Disyorkan)
Pendekatan ini memastikan keselamatan semasa menyambung ke pelayan SSH.
Menggunakan ssh-keyscan (Linux/Unix)
ssh-keyscan example.com > known_hosts
Menggunakan Windows
Dapatkan binaan Windows ssh-keyscan daripada projek Win32-OpenSSH atau Git untuk Windows, kemudian ikuti langkah yang sama.
Setelah anda menjana fail known_hosts, rujuknya dalam kod JSch anda:
JSch jsch = new JSch(); jsch.setKnownHosts("/path/to/known_hosts");
Sebagai alternatif, Anda Boleh:
JSch.getHostKeyRepository().add(...) // Provide the expected host key manually
Dengan menggunakan kaedah ini, anda boleh memintas ralat UnknownHostKey sambil mengekalkan keselamatan dalam Java anda operasi SFTP. Walau bagaimanapun, adalah penting untuk diingat bahawa melumpuhkan semakan kunci hos hanya dinasihatkan untuk tujuan ujian dan harus dielakkan dalam persekitaran pengeluaran.
Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Ralat Java `UnknownHostException: UnknownHostKey` dalam JSch SFTP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!