ssh 키 페어에서 .pem 파일을 얻는 방법은 무엇입니까?


33

ssh-keygen을 사용하여 키 페어를 만들고 두 개의 클래식 id_rsa 및 id_rsa.pub를 얻습니다.

퍼블릭 키를 AWS EC2 계정으로 가져 왔습니다.

이제 Windows 인스턴스를 생성하고 해당 인스턴스 비밀번호를 해독하기 위해 AWS 콘솔에서 .pem 파일을 요청합니다. 두 개의 id_rsa 및 id_rsa.pub 파일에서 해당 .pem 파일을 얻는 방법은 무엇입니까?


2
개인 키는 이미 PEM 형식이며 그대로 사용할 수 있습니다.
마이클 햄튼

@MichaelHampton, 이것은 ssh-keygen의 버전과 키 페어를 생성하는 데 사용되는 명령에 따라 다릅니다. 일부 버전은 기본적으로 PEM 대신 RFC4716을 사용합니다.
Austinian

답변:


44

에 따르면 이 명령을 사용할 수 있습니다 :

ssh-keygen -f id_rsa -e -m pem

공개 키가 OpenSSL 호환 형식으로 변환 됩니다. 귀하의 개인 키를 PEM 형식으로 이미와 (마이클 햄튼이 명시된 바와 같이) 그대로 사용할 수있다.

AWS가 SSH 키와 다른 PEM 형식 의 (X.509) 인증서 를 요청하지 않는지 다시 확인하십시오 .


그러나 그들은 공개 키가 필요하지 않습니까? AWS 콘솔에서 비밀번호를 해독하려면 개인 키가 필요합니다
Michael Bailey

OP가 무엇을 필요로하는지 전혀 모른다.
fuero

AWS에 대한 친숙 함은 확실하지 않지만 Windows 인스턴스 (기본적으로 서버)를 가동 할 때 AWS는 개인 키를 제공 할 때까지 암호를 유지합니다. 그런 다음 서버 비밀번호를 제공합니다. 그러면 AWS의 Windows 및 Linux 서버는 모두 개인 키에 의존합니다.
Michael Bailey

1
이것은 OS X에서 작동하지 않습니다 (ssh -v ==> OpenSSH_6.2p2)
chrish

3
문서와 달리 개인 키가 아닌 PEM 형식의 PUBLIC 키를 출력합니다. 현재 ssh-keygen은 개인 키 변환을 지원하지 않습니다.
morgwai

21

ssh-keygen.pem 형식으로 키를 내보내는 데 사용 했습니다.

ssh-keygen -f id_rsa.pub -m 'PEM' -e > id_rsa.pem

그런 다음 .pem필요에 따라 간단히 키를 복사하십시오 .

참고로 :

  • -f id_rsa.pub부분은 읽을 입력 파일을 나타냅니다.
  • -m 'PEM PEM 파일 형식을 나타냅니다
  • -e옵션은 출력을 내보낼 것을 나타냅니다

5

id_rsa Windows EC2 인스턴스 암호를 해독하는 데 사용해야하는 파일이지만 붙여 넣은 파일이 문구로 보호되지 않아야합니다.

일시적으로 보호되지 않은 id_rsa파일을 얻는 문제 를 다음과 같이 해결했습니다.

$ openssl rsa -in ~/.ssh/id_rsa -out tmp_file.pem

2

처음에는을 사용할 때 ssh-keygenAWS EC2와 호환되는 공개 키를 생성 할 수 있었지만 호환되는 개인 키 생성에 문제가있었습니다. 다음은 AWS EC2와 호환되는 퍼블릭 및 프라이빗 키 페어를 모두 생성합니다.

ssh-keygen -P "" -t rsa -b 4096 -m pem -f my-key-pair

각 매개 변수에 대한 정보는 다음과 같습니다.

  • -P : 비밀번호 문구입니다. 의도적으로 비워 둡니다.
  • -t : 작성할 키 유형을 지정합니다. AWS EC2 키 페어에는 RSA가 필요합니다. 이것이 만들어진 공개 키와 관련된 것은 내 경험입니다.
  • -b : 키의 비트 수를 지정합니다. 지원되는 길이는 1024, 2048 및 4096입니다. EC2 Instance Connect API를 사용하는 동안 SSH를 사용하여 연결하는 경우 지원되는 길이는 2048 및 4096입니다.
  • -m : 키 생성을위한 키 형식을 지정합니다. 지원되는 개인 키 유형을 생성 할 때“PEM”형식을 설정하면 키가 레거시 PEM 개인 키 형식으로 저장됩니다. AWS EC2 키 페어에는 레거시 형식이 필요합니다
  • -f : 키 파일의 출력 파일 이름을 지정합니다

자원:

ssh-keygen에 대한 자세한 내용은 https://man.openbsd.org/ssh-keygen.1을 참조하십시오. 

AWS-EC2 키 페어-https:  //docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html


Mike는 '-b'옵션에 대한 문서를 포함하지 않기로 선택했습니다. 아마도 일부 사람들에게는 "4096-bit encryption please"라는 의미 일 것입니다. 연결된 AWS 문서에 명시된 바와 같이 "지원되는 길이는 1024, 2048 및 4096입니다. EC2 Instance Connect API를 사용하는 동안 SSH를 사용하여 연결하는 경우 지원되는 길이는 2048 및 4096입니다."
nclark

@nclard, 왜 -b 매개 변수를 생략했는지 잘 모르겠습니다. 방금 추가했습니다.
Mike Barlow-BarDev

0

EC2 인스턴스를 시작할 때 키 페어 (또는 없음)를 할당합니다. 나중에 변경할 수 없습니다.

해당 키 페어에서 해당 .pem 파일 만 사용하면 Windows 암호를 해독 할 수 있습니다.

.pem 파일은 키 페어가 생성 될 때 다운로드되었을 것입니다. 다시 얻을 수 없습니다. 당신이 그것을 잃어버린 경우, 당신은 운이 없습니다.

인스턴스가 시작되기 전에 해당 키를 AWS로 가져 와서 인스턴스에 할당하지 않으면 직접 생성 한 .pem 파일을 사용할 수 없습니다.

간단히 말해 .pem 원본 파일이 없으면 암호를 얻을 수 없습니다.

편집 : 질문을 다시 읽은 후 OP가 키를 AWS로 가져 왔습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.