반응형

문제

  • known_hosts 파일에 등록된 IP지만 알려지지 않은 호스트 문제가 발생

 

원인

  • JSch가 SHA-RSA를 선호하고 연결하는 동안, SHA-RSA 지문을 비교하려고 시도하여 오류 발생
  • 기존에 등록된 호스트 키는 SHA-RSA 방식의 지문이 없었다.

 

해결

  • ssh-keyscan 을 사용한다. 여러 호스트의 공개 SSH 호스트 키를 수집하는 유틸리티이다.
  • $ ssh-keyscan -H -t rsa 호스트IP
    • 위의 명령어를 사용하여 기존 known_hosts 파일에 암호화 방식을 추가한다.
    • 윈도우에서 사용할 경우, 개행이 되지않아 파일을 확인해서 제대로 개행되었는지 확인한다.
    • -H
      • 출력의 모든 호스트 이름과 주소를 해시합니다.
    • -t 유형
      • 스캔한 호스트에서 가져올 키 유형을 지정합니다. 
      • 가능한 값은 "dsa", "ecdsa", "ed25519" 또는 "rsa"입니다. 
      • 쉼표로 구분하여 여러 값을 지정할 수 있습니다. 
      • 기본값은 "rsa", "ecdsa" 및 "ed25519" 키를 가져오는 것입니다.
    • 호스트IP
      • 지문을 생성할 대상 주소

 

  • 명령어를 실행한 후 붉은 박스의 내용을 모두 복사한다. 그리고 기존 known_hosts 파일에 추가한다.
    • 윈도우의 경우 >> 를 통해서 파일에 내용을 추가하는 형식으로 하니 제대로 동작하지 않았다.

 

 

  • 기존 known_hosts 파일 내용 일부

 

  • 지문을 새로 추가한 known_hosts 파일

 

  • 새로운 암호화 방식으로 생성한 지문을 known_hosts 파일에 추가한 후, 에러 메시지 없이 정상적으로 동작되었다.

 


[참고자료]

https://stackoverflow.com/questions/2003419/com-jcraft-jsch-jschexception-unknownhostkey

https://stackoverflow.com/questions/34684251/jsch-unknownhostkey-exception-when-host-key-is-in-known-hosts-and-after-adding

https://man.openbsd.org/ssh-keyscan

 

반응형

+ Recent posts