/
SSH Load key "Invalid format" 에러 처리 - OpenSSH 용 개인키를 RSA 개인키로 변환

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



같이 보기

Ref

Related content

~/.ssh/authorized_keys 에 public key 를 추가했으나 자동 로그인이 안 됨
~/.ssh/authorized_keys 에 public key 를 추가했으나 자동 로그인이 안 됨
More like this
ssh 개인키 암호 변경/해제하기(change ssh private key pass phrase)
ssh 개인키 암호 변경/해제하기(change ssh private key pass phrase)
More like this
ssh 공개키에 있는 이메일 주소 변경하기(change email address in ssh pub key)
ssh 공개키에 있는 이메일 주소 변경하기(change email address in ssh pub key)
More like this
ssh-agent 가 private key 를 캐싱할 수 있도록 등록해 주는 ssh-add 명령어 사용법
ssh-agent 가 private key 를 캐싱할 수 있도록 등록해 주는 ssh-add 명령어 사용법
More like this
scp, ssh, rsync 를 key 비밀 번호/암호 입력창 없이 사용하기
scp, ssh, rsync 를 key 비밀 번호/암호 입력창 없이 사용하기
More like this
ssh Authentications method 설정
ssh Authentications method 설정
More like this