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.