JSch SFTP 라이브러리로 Java UnknownHostKey 문제 해결
Java SFTP 라이브러리(JSch)를 사용할 때 "UnknownHostKey" 오류가 발생할 수 있습니다. 엄격한 호스트 키 확인으로 인해. 이 오류는 JSch가 원격 서버에서 제공한 호스트 키의 신뢰성을 확인할 수 없기 때문에 발생합니다.
근본 원인:
원격 SFTP에 연결하려고 할 때 오류가 발생합니다. 처음으로 서버. JSch는 호스트 키 검사를 수행하여 악의적인 사칭자가 아닌 올바른 서버에 연결되어 있는지 확인합니다.
해결책:
이 문제를 해결하기 위한 두 가지 일반적인 접근 방식이 있습니다.
1. 호스트 키 검사 건너뛰기:
이 방법은 연결 보안을 손상시키므로 권장하지 않습니다. 그러나 호스트 키를 신뢰할 수 있다고 확신하는 경우 서버에 연결하기 전에 "StrictHostKeyChecking" 속성을 "no"로 설정하여 호스트 키 검사를 비활성화할 수 있습니다.
java.util.Properties config = new java.util.Properties(); config.put("StrictHostKeyChecking", "no"); session.setConfig(config);
2. 예상 호스트 키 추가:
보안 강화를 위해 JSch의 호스트 키 저장소에 예상 호스트 키를 추가하는 것이 좋습니다. 이는 다음 방법 중 하나를 사용하여 수행할 수 있습니다.
알려진 호스트 파일 생성:
*nix 서버에서 다음 명령을 실행합니다.
ssh-keyscan example.com > known_hosts
"JSch.setKnownHosts(path)"를 사용하여 파일을 가리킵니다.
JSch.setKnownHosts("path/to/known_hosts");
수동으로 호스트 키 추가 :
HostKey를 호스트 키 저장소:
JSch jsch = new JSch(); HostKey hostKey = jsch.getHostKeyRepository().add(hostname, publicKey, algName);
추가 참고 사항:
제공한 호스트 키가 원격 서버에서 제공한 실제 키와 일치하는지 확인하세요. 키가 일치하지 않으면 보안 예외로 인해 연결이 계속 실패합니다.
위 내용은 JSch의 SFTP 라이브러리를 사용할 때 'UnknownHostKey' 오류를 해결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!