ssh-keygen을 사용하여 키 쌍을 만들고 두 개의 기본 id_rsa 및 id_rsa.pub를 가져옵니다.

공개 키를 내 AWS EC2 계정으로 가져왔습니다.

이제 Windows 인스턴스를 생성하고 해당 인스턴스 암호를 해독하기 위해 AWS 콘솔에서 .pem 파일을 요청합니다. 두 개의 id_rsa 및 id_rsa.pub 파일에서 해당 .pe 파일을 어떻게 얻을 수 있습니까?

answer

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

ssh-keygen -f id_rsa -e -m pem

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

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

ssh-keygen.pem 형식으로 키를 내보내는 데 사용 하면 효과적이었습니다.

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

그런 다음 .pem필요에 따라 키를 복사하기만 하면 됩니다.

참고로:

  • -f id_rsa.pub부로부터 판독하는 입력 파일을 나타내는
  • -m 'PEM PEM 파일 형식을 나타냅니다.
  • -e옵션은 출력을 내보낼 것을 나타냅니다

처음에는 를 사용할 때 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

id_rsa Windows EC2 인스턴스 암호를 해독하는 데 사용해야 하는 파일이지만 복사하여 붙여넣은 파일이 구문으로 보호되어 있지 않은지 확인하십시오.

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

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

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

해당 키 쌍에서 해당 .pem 파일을 사용해야만 Windows 암호를 해독할 수 있습니다.

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

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

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

편집: 질문을 다시 읽은 후 OP가 그의 키를 AWS로 가져왔다는 것을 깨달았습니다.