SSH Load key "Invalid format" 에러 처리 - OpenSSH 용 개인키를 RSA 개인키로 변환
원인
OpenSSH 최신 버전에서 ssh-keygen 을 실행하면 다음과 같이 OpenSSH 형식의 개인키(Private Key)가 생성됩니다.
-----BEGIN OPENSSH PRIVATE KEY----- b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAABFwAAAAdzc2gtcn ... -----END OPENSSH PRIVATE KEY-----
이런 개인키 형식은 특정 app 의 경우에 인식하지 못해서 "Load key '~/.ssh/id_rsa' invalid format" 에러가 나고 사용할 수 없게 됩니다.
방지하려면 키 생성시 RSA Private Key 형식으로 생성하거나 기존 OpenSSH private key 형식을 RSA Private Key 로 변경해야 합니다.
RSA Private key 여부는 개인키 파일(id_rsa) 를 열어서 아래와 같은 헤더가 붙어 있는지 확인해 보면 됩니다.
-----BEGIN RSA PRIVATE KEY----- MIIEpAIBAAKCAQEA1dknl4rVV7jS8+Wzff9XuPdO44z84UimxQORXmrE+Ah0/q3F ... -----END RSA PRIVATE KEY-----
조치
키 생성시 RSA 형식 지정
ssh-keygen 으로 키를 생성할 때 -m PEM 옵션을 추가하고 키를 생성하면 RSA 의 형식으로 생성됩니다.
ssh-keygen -m PEM -t rsa -C "lesstif@yourhost"
키 포맷 변환
이미 만들어진 OpenSSH 형식의 키는 포맷을 변경해 주면 되는데 ssh-keygen 에서는 공개키(Public key) 만 변환 가능하고 대신 puttygen 이라는 외부 프로그램이 있어야 개인키 변환이 가능합니다.
ssh-keygen 으로 공개 키를 변환은 아래 명령으로 가능하며 -f 뒤에는 OpenSSH 형식의 키를 적어주며 출력 파이프(>) 에는 RSA Private key 형식으로 저장할 파일의 경로를 적어주면 됩니다.
다음은 id_rsa 를 입력받아서 id_rsa_new_key 로 저장합니다.
ssh-keygen -e -m PEM -f id_rsa > id_rsa_new_key
같이 보기
- ssh 개인키 암호 변경/해제하기(change ssh private key pass phrase)
- OpenSSH private key 를 putty 포맷으로 변환하여 ssh 자동 로그인 하기
- puttygen 설치 및 OpenSSH 개인키를 RSA 개인키로 변환