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

Bagaimana untuk Menyelesaikan Ralat 'UnknownHostKey' dalam Java SFTP (JSch)?

Barbara Streisand
Barbara Streisandasal
2024-12-02 00:18:10888semak imbas

How to Solve the

Memahami Ralat UnknownHostKey dalam Java SFTP (JSch)

Anda telah mengalami ralat "UnknownHostKey" semasa menggunakan perpustakaan SFTP Java JSch. Ralat ini menunjukkan bahawa JSch tidak dapat mengesahkan ketulenan kunci awam hos jauh. Untuk menyelesaikan masalah ini, adalah penting untuk memahami punca asasnya.

Punca:

Apabila JSch menyambung ke hos jauh, ia membandingkan kunci awam hos dengan senarai kunci hos yang diketahui. Jika kunci hos jauh tidak ditemui dalam senarai hos yang diketahui, ia menggesa untuk pengesahan pengguna dan bertanya sama ada untuk menambah kunci pada senarai. Secara lalai, "StrictHostKeyChecking" JSch didayakan, yang menghalangnya daripada menyambung secara automatik ke hos dengan kunci yang tidak diketahui atau tidak disahkan.

Penyelesaian:

1. Abaikan Pengesahan Kunci Hos (Tidak Disyorkan):

Properties config = new Properties();
config.put("StrictHostKeyChecking", "no");
session.setConfig(config);

Pendekatan ini membolehkan JSch menyambung ke hos jauh tanpa menyemak kunci hos, yang bukan amalan selamat dan hanya boleh digunakan dalam yang dipercayai persekitaran. Ia tidak menyelesaikan punca masalah.

2. Konfigurasikan Pengesahan Kunci Hos:

Pilihan 1: Gunakan Fail Hos Diketahui

JSch.setKnownHosts("/path/to/known_hosts");

Fail ini mengandungi senarai kunci hos yang diketahui dan cap jarinya yang sepadan . Apabila menyambung ke hos jauh, JSch membandingkan kunci awam hos dengan kunci dalam fail hos yang diketahui. Jika padanan ditemui, sambungan diteruskan tanpa pengesahan pengguna.

Pilihan 2: Tambah Kunci Hos Secara Manual

HostKey knownHostKey = new HostKey("127.0.0.1", 22, "rsa", "A2:39:3F:44:88:E9:1F:D7:D1:71:F4:85:98:FB:90:DC");
session.getHostKeyRepository().add(knownHostKey, session);

Kaedah ini membolehkan anda menyediakan secara manual yang diharapkan kunci hos untuk hos jauh, membenarkan JSch mengesahkan sambungan tanpa sebarang gesaan pengguna.

Dengan melaksanakan salah satu daripada kaedah ini, anda boleh menyelesaikan ralat "UnknownHostKey" dan mewujudkan sambungan SFTP yang selamat ke hos jauh.

Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Ralat 'UnknownHostKey' dalam Java SFTP (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