올바른 프라이빗 키를 사용해도 Windows 비밀번호가 AWS EC2에서 암호 해독되지 않습니다


21

로컬 컴퓨터에서 공개 키를 업로드하여 생성 한 키 페어를 사용하여 AWS EC2에서 새 Windows 인스턴스를 생성했습니다.

인스턴스는 정상적으로 시작되었지만 암호를 해독하지는 않습니다. 보고합니다 :

개인 키는 "----- BSAIN RSA PRIVATE KEY -----"로 시작하고 "----- END RSA PRIVATE KEY -----"로 끝나야합니다.

올바른 키를 업로드했다고 확신합니다. 나는 한 지문이 이상한 지문 형식 AWS의 사용과 일치하는지 확인 . 그러나 그것은 해독되지 않습니다.

키 파일을 업로드하여 양식에 붙여 넣었습니다.

결국 후행 줄 바꿈을 제거하지 않고 키의 빈 줄을 삭제했습니다. 그래도 "암호 해독"을 클릭하면 새로운 오류가 발생합니다.

비밀번호를 해독하는 중에 오류가 발생했습니다.  개인 키를 올바르게 입력했는지 확인하십시오.

답변:


22

AWS EC2의 키 관리는 비밀번호가 설정되어 (암호화 된) SSH 개인 키를 처리하지 않습니다. 이를 감지하지 못하고 정보가없는 오류로 실패합니다.

프라이빗 키가 디스크에 암호화되어 저장된 경우 (예 : IMO) AWS 콘솔에 붙여 넣으려면 암호를 해독해야합니다.

그렇게하는 대신 암호를 로컬로 해독하는 것이 좋습니다. 따라서 프라이빗 키를 AWS에 보낼 필요가 없습니다. 시작 후 또는 get-password-data 또는 해당 API 요청을 사용하여 서버 로그에서 암호화 된 비밀번호 데이터 (base64로 인코딩 됨)를 가져 오십시오 .

그런 다음 결과를 base64 디코딩 및 해독 할 수 있습니다.

base64 -d /tmp/file | openssl rsautl -decrypt -inkey /path/to/aws/private/key.pem

OpenSSH 개인 키는으로 승인됩니다 openssl rsautl.

유용한 오류 암호로 보호 된 키를 처리하기 위해 실패의 문제도 영향을 명령을 .ec2-get-password

참조 :


1
감사. 다음은 귀하의 제안에 따라 사용하는 완전한 명령 줄입니다 aws ec2 get-password-data "--instance-id=${instance_id}" | jq -r .PasswordData | base64 -D | openssl rsautl -decrypt -inkey ${my_key} ( aws-clijq 사용 ).
벤 버틀러-콜

base64 는 나를 위해 -d그렇게 -D작동한다고 불평 합니다. OS X에서 메신저
Saad Masood

2
OS X에서는 파이프에 명령을 하나 더 추가합니다. aws ec2 get-password-data "--instance-id=${instance_id}" | jq -r .PasswordData | base64 -D | openssl rsautl -decrypt -inkey ${my_key} | pbcopy ... 암호를 클립 보드로 바로 보냅니다.
Mark Maglana

1
정답 IMHO로 표시해야합니다. 다른 답변은 이것에 비해 약간 안전하지 않기 때문에
webofmars

4

jq를 사용하지 않으면 여전히 가능하지만 반환 된 데이터를 추가로 파싱해야합니다.

aws ec2 get-password-data "--instance-id=${instance_id}" --query 'PasswordData' | sed 's/\"\\r\\n//' | sed 's/\\r\\n\"//' | base64 -D | openssl rsautl -inkey ${my_key} -decrypt

WSL Ubuntu에서 훌륭하게 작동했지만 base64 -d대신 사용해야했습니다 -D.
세스 스톤

3

이것이 macOS에서 나를 위해 일한 것입니다.

openssl rsa -in $HOME/.ssh/aws-remote -out /Users/home/desktop/unencrypted-rsa.txt

다음 줄을 찾아서 .pem 파일이 암호로 암호화되어 있는지 확인할 수 있습니다. 존재하는 경우 Amazon에서 사용하기 전에 암호를 해독해야합니다.

Proc-Type: 4,ENCRYPTED

나에게 그것은 해결책이었다. AWS UI는 키가 암호로 보호되어 있음을 감지하지 못하므로 먼저 암호를 해독해야합니다. 그러나 이것은 일종의 안전하지 않습니다. 나중에 해독 된 파일을 제거하십시오.
webofmars

2

내 Mac에서는 base64의 명령 줄 인수가 다릅니다.

이것은 나를 위해 일했다 :

base64 -D -i /tmp/file | openssl rsautl -decrypt -inkey /path/to/key.pem

-1
  1. EC2 대시 보드로 이동
  2. 기존 키를 삭제
  3. 새로운 키 페어 만들기
  4. 이름을 고르세요
  5. 다운로드하여 로컬에 보관하십시오
  6. 인스턴스를 시작하고 Windows 인스턴스 사본을 다운로드하십시오.
  7. 4 단계에서 사용한 이름으로 새 키 쌍의 이름을 지정하십시오.
  8. 이 새로 생성 된 키를 사용하여 비밀번호를 해독하십시오.

이 작동합니다


1
예, 작동합니다. 그러나 그것은 또한 요점을 그리워합니다-로컬 키를 업로드하는 경우를 설명하고 있습니다.
Craig Ringer
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.