IT한 것

com.jcraft.jsch.JSchException: invalid privatekey

lovian 2021. 4. 13. 14:14

gradle에서 ssh 플러그인을 활용해서 서버에 deploy 시키기 하려고 했다.

아직 스크립트가 실행도 안되었는데, 위의 오류가 발생했다.

 

$ ssh-keygen -f my_id_rsa

위의 명령으로 my_id_rsa 비밀키를 만들었고

 

task deploy {
  host = 'ip'
  user = 'username'
  identity = file('my_is_rsa')
}

위의 설정으로 ssh를 설정했다.

 

위의 오류가 발생한 이유는 개인키 파일 형식이 잘못되었다는 것.

ssh-keygen 기본 옵션으로 개인키를 생성하면

-----BEGIN OPENSSH PRIVATE KEY----- 로 시작하는 개인키 파일이 만들어지는데

이 파일은 OPENSSH 용 개인키라 인식을 못하는 것으로 보인다.

 

일반적인 PEM 형식으로 개인키를 생성하도록

$ ssh-keygen -f my_id_rsa -m PEM

옵션을 추가해주면, 정상적으로 인식하고 동작한다.