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

Bagaimana untuk Menyelesaikan Ralat 'UnknownHostKey' dalam Java SFTP Menggunakan JSch?

Barbara Streisand
Barbara Streisandasal
2024-12-21 04:05:09414semak imbas

How to Resolve the

Menyelesaikan Ralat UnknownHostKey dalam Java SFTP Menggunakan JSch

Ralat "UnknownHostKey" berlaku apabila JSch menemui kunci hos yang tidak diketahui semasa membuat sambungan SFTP . Untuk menyelesaikan isu ini, anda perlu menyediakan JSch dengan kunci hos yang dijangkakan untuk pengesahan.

Menetapkan StrictHostKeyChecking

Pada mulanya, anda cuba melumpuhkan semakan kunci hos dengan menetapkan " StrictHostKeyChecking" kepada "tidak" sebelum menyambung ke pelayan SFTP. Ini adalah risiko keselamatan dan tidak boleh dilakukan melainkan benar-benar perlu.

Pendekatan yang Betul: Menetapkan Kunci Hos yang Dijangka

Sebaliknya, anda harus menyediakan kunci hos yang dijangkakan untuk JSch untuk mengesahkan terhadap. Terdapat dua kaedah utama untuk mencapai ini:

Menggunakan Fail known_hosts

  • Janakan fail ".ssh/known_hosts-like" menggunakan "ssh-keyscan" arahan.
  • Tetapkan laluan ke fail ini menggunakan "JSch.setKnownHosts()" sebelum mewujudkan sesi SFTP.
ssh-keyscan example.com > known_hosts
JSch.setKnownHosts("path/to/known_hosts");

Menggunakan HostKeyRepository

  • Buat contoh HostKey secara manual menggunakan kunci awam yang diharapkan.
  • Tambahkan HostKey pada HostKeyRepository menggunakan "JSch.getHostKeyRepository().add()".
// Create HostKey from public key
HostKey key = new HostKey("example.com", "rsa", ...);

// Add HostKey to repository
JSch.getHostKeyRepository().add(key);

Nota: Kedua-dua pendekatan memastikan JSch boleh mengesahkan ketulenan pelayan SFTP menggunakan kunci hos yang dijangkakan , dengan itu menyelesaikan ralat "UnknownHostKey".

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

Kenyataan:
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