Dev/JAVA

OPENSSH RSA로 변환하는 방법 JSchException :: invalid privatekey 해결방법

Aloner 2024. 2. 8. 18:17
728x90
반응형

Java에서 SFTP를 사용하려면 JSCH 라이브러리를 사용한다

하지만 해당 라이브러리는 OPENSSH를 지원하지 않아 OPENSSH로 된 pem으로 인증을 받으면 아래와 같은 오류 메시지를 뱉는다

(JSchException) :: invalid privatekey: [B@6fae7a8d
위와 같은 에러를 뱉는다면 pem을 열어 OPENSSH인지 RSA인지 확인 할 수 있다
-----BEGIN OPENSSH PRIVATE KEY-----
[KEY CONTENT]
-----END OPENSSH PRIVATE KEY-----

-----BEGIN RSA PRIVATE KEY-----
[KEY CONTENT]
-----END RSA PRIVATE KEY-----

해결방법
해결항법은 의외로 간단하다
OPENSSH를 RSA로 변환하면 에러는 금방 사라진다

OPENSSH를 RSA로 변환하는 방법은 아래와 같다

먼저 PUTTYGEN을 설치한다

 

Download PuTTY: latest release (0.80)

This page contains download links for the latest released version of PuTTY. Currently this is 0.80, released on 2023-12-18. When new releases come out, this page will update to contain the latest, so this is a good page to bookmark or link to. Alternativel

www.chiark.greenend.org.uk

위 링크에서 puttygen.exe를 컴퓨터 버전에 맞게 설치

실행하면 이런 팝업창의 key generator가 나타나고

Conversions -> Import key 선택 후 바꾸고자 하는 pem을 불러온다

passphrase를 입력한다

그럼 자동으로 key의 항목들이 로드되고

Conversions -> Export OpenSSH key를 선택하면 RSA로 바꾼 pem을 만들 수 있다

물론 DSA나 다른 암호화 방식을 선택하고 Export를 하면 해당 암호화 방식으로 바꾼 pem을 만들 수 있다

728x90
반응형