>Java >java지도 시간 >Java SFTP(JSch)에서 'UnknownHostKey' 오류를 해결하는 방법은 무엇입니까?

Java SFTP(JSch)에서 'UnknownHostKey' 오류를 해결하는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-12-02 00:18:10887검색

How to Solve the

Java SFTP(JSch)의 UnknownHostKey 오류 이해

Java SFTP 라이브러리 JSch를 활용하는 동안 "UnknownHostKey" 오류가 발생했습니다. 이 오류는 JSch가 원격 호스트 공개 키의 신뢰성을 확인할 수 없음을 나타냅니다. 이 문제를 해결하려면 근본 원인을 이해하는 것이 중요합니다.

원인:

JSch는 원격 호스트에 연결할 때 호스트의 공개 키를 목록과 비교합니다. 알려진 호스트 키 중 알려진 호스트 목록에 원격 호스트의 키가 없으면 사용자에게 확인 메시지를 표시하고 해당 키를 목록에 추가할지 묻습니다. 기본적으로 JSch의 "StrictHostKeyChecking"이 활성화되어 있어 알 수 없거나 확인되지 않은 키가 있는 호스트에 자동으로 연결되지 않습니다.

해결책:

1. 호스트 키 확인 무시(권장하지 않음):

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

이 접근 방식을 사용하면 JSch가 호스트 키를 확인하지 않고 원격 호스트에 연결할 수 있습니다. 이는 안전한 방법이 아니며 신뢰할 수 있는 환경에서만 사용해야 합니다. 환경. 문제의 근본 원인을 해결하지는 않습니다.

2. 호스트 키 확인 구성:

옵션 1: 알려진 호스트 파일 사용

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

이 파일에는 알려진 호스트 키 목록과 해당 지문이 포함되어 있습니다. . 원격 호스트에 연결할 때 JSch는 호스트의 공개 키를 알려진 호스트 파일의 키와 비교합니다. 일치하는 항목이 발견되면 사용자 확인 없이 연결이 진행됩니다.

옵션 2: 수동으로 호스트 키 추가

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);

이 방법을 사용하면 예상되는 호스트 키를 수동으로 제공할 수 있습니다. 원격 호스트의 호스트 키를 사용하여 JSch가 사용자 메시지 없이 연결을 확인할 수 있도록 합니다.

이러한 방법 중 하나를 구현하면 다음을 수행할 수 있습니다. "UnknownHostKey" 오류를 해결하고 원격 호스트에 대한 보안 SFTP 연결을 설정하세요.

위 내용은 Java SFTP(JSch)에서 'UnknownHostKey' 오류를 해결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.