ssh-keygen은 RSA 개인 키를 만들지 않습니다


71

개인 키를 만들려고하는데 문제가 있습니다.

을 사용할 때 ssh-keygen -t rsa -b 4096 -C "your_email@example.com"다음 형식의 개인 키를 얻습니다.

-----BEGIN OPENSSH PRIVATE KEY-----
uTo43HGophPo5awKC8hoOz4KseENpgHDLxe5UX+amx8YrWvZCvsYRh4/wnwxijYx
...
-----END OPENSSH PRIVATE KEY-----

그리고 이것은 내가 사용하려고하는 응용 프로그램에는 허용되지 않습니다.

다음 RSA 형식의 키가 필요합니다.

-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: AES-128-CBC,25737CC2C70BFABADB1B4598BD8AB9E9

uTo43HGophPo5awKC8hoOz4KseENpgHDLxe5UX+amx8YrWvZCvsYRh4/wnwxijYx
...
-----END RSA PRIVATE KEY-----

올바른 형식을 만들려면 어떻게합니까? 내가 가진 다른 모든 Mac에서 문제가있는 Mac을 제외하고 올바른 형식을 생성하기 때문에 이상합니다.

새로 설치된 Mac OS Mojave를 사용하고 있습니다.


다른 Mac은 Mojave에 있지 않습니까? 나도 모하비에 있고 "새로운"openssh 키 형식을 얻습니다. 그래서 다른 Mac은 더 낮은 버전에 있다고 가정합니다. 사용 된 OpenSSL 버전을 확인하십시오.
Zina

@Zina 다른 Mac도 Mojave에 있으며 동일한 OpenSSL 버전이 있습니다.
Moon

RSA가 기본 유형이어야합니다. -t rsa옵션을 모두 생략하면 어떻게됩니까?
guzzijason

@guzzijason 그것은 동일합니다. 그것이 나를 미치게 만드는 원인입니다. 내 Mac에서 -t rsa를 생략하더라도 (작동 중) RSA가 올바르게 생성됩니다.
Moon

나는 같은 문제가 있었다. 해결 방법으로 이전 버전의 openssh를 사용하여 키를 생성했습니다. openssl rsa -text -in key_file -passin 'pass : passphrase'를 사용하여 생성 된 키가 올바른지 테스트 할 수 있습니다. 버전 7.4p1-16이 작동합니다.
apr

답변:


76

최근에 동일한 문제가 발생했습니다 (mojave 10.14.1로 업그레이드 한 후).이 문제에 대한 두 가지 가능한 해결책이 있습니다.

  • ssh-keygen 바이너리를 다운 그레이드하십시오 (리눅스 / 도커 이미지에서 구 버전을 쉽게 얻을 수 있습니다)

또는

  • -m PEMssh-keygen 명령에 옵션 을 추가하십시오 . 예를 들어, ssh-keygen -m PEM -t rsa -b 4096 -C "your_email@example.com"ssh-keygen을 강제로 PEM형식 으로 내보내도록 실행할 수 있습니다 .

모하비의 현재 ssh-keygen 버전과 같으며 기본 내보내기 형식은 여기에RFC4716 언급되어 있습니다


1
기본 내보내기 공개 키 형식은 실제로 rfc4716이지만 Q 형식은 내부 개인 키 형식이며 1999 (!)에는 없었으며 더 이상 현재 설명되어 있지 않은 OpenSSH의 '신규'형식입니다. 6.0에서 6.3을 시도하십시오.
dave_thompson_085

3
답변을 편집 할 수는 없지만 1 단계와 2 단계는 순차적 단계가 아닌 독립적 인 솔루션이라는 것을 명심하십시오. 일회성 키 생성을 위해 다운 그레이드 할 필요가 없습니다. -m PEM
sdoxsee

49

OpenSSH 개인 키 형식의 새 키는 ssh-keygen 유틸리티를 사용하여 이전 PEM 형식으로 변환 할 수 있습니다.

ssh-keygen -p -m PEM -f ~/.ssh/id_rsa

이 결과를 얻기 위해 이전 OpenSSH로 다운 그레이드 할 필요는 없습니다.


예. 내가 받아 들인 대답에 대한 의견에서 이미 언급했듯이. serverfault.com/questions/939909/…
sdoxsee

9
허용되는 답변에서 명확하지 않은 것은 새 키 페어를 만들 필요가 없다는 것입니다. 기존 키를 가져 와서 해당 명령으로 변환 할 수 있습니다. 파일을 덮어 씁니다. 만약을 대비하여 전에 백업을 만드는 것이 좋습니다.
martintama

기존 개인 키를 RSA 형식으로 변환하는 방법에 대한 지침을 추가해 주셔서 감사합니다. 방금 베이컨을 구했습니다!
Craig Blaszczyk
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.