Choi의 고유결계

[Jsch] SSH 연결 시 invalid privatekey 에러 본문

언어/Java

[Jsch] SSH 연결 시 invalid privatekey 에러

믿을수없는맛 2024. 2. 20. 11:58
반응형

상황

윈도우 환경에서 테스트 당시 Jsch 연결이 잘 되었었다.

테스트 서버(우분투 22) 에서도 똑같이 키를 생성하였는데

ssh-keygen  

invalid privatekey 에러가 발생하였다.

 

  윈도우(로컬) 우분투22(테스트서버)
SSH 버전 OpenSSH 8.1 OpenSSH 8.9

원인

OpenSSH 7.8 부터는 키생성에 새로운 포맷(openssh 방식)을 사용한다고 한다.
Jsch에서는 해당 포멧을 지원 하지 않아 오류가 발생한다고 한다.

 

 

어라 내 윈도우 SSH는 8.1 버전인데?

알고 보니 내가 윈도우에서 사용한 키는 아주 예전에 만들어 놨던거라 옛전 포멧으로 생성 된 것 같다.
그래서 Jsch연결시 문제가 없었던 것.

 

실제로 비밀키를 열어보면 아래와 같이 차이가 난다.

기존 포멧(윈도우)

-----BEGIN RSA PRIVATE KEY-----

신규 포멧(우분투)

-----BEGIN OPENSSH PRIVATE KEY-----

해결

아래 명령어를 통해 기존 포멧의 키를 생성하여 연결하면 된다~

ssh-keygen -f {저장될 경로} -m PEM

혹은 기존키 변환!

sudo ssh-keygen -p -m PEM -f {기존 키 경로}
반응형
Comments