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 중국어 웹사이트의 기타 관련 기사를 참조하세요!