Windows Parolası, doğru özel anahtarla bile AWS EC2'de şifresini çözmez


21

Genel anahtarımı yerel makinemden yükleyerek oluşturduğum bir anahtar çiftini kullanarak AWS EC2'de yeni bir Windows örneği oluşturdum.

Örnek iyi başlatıldı, ancak parolanın şifresini çözmeyecek. Raporlar:

Özel anahtar "----- RSA ÖZEL ANAHTARINI BAŞLAT -----" ile başlamalı ve "----- SON RSA ÖZEL ANAHTARI -----" ile bitmelidir.

Doğru anahtarı yüklediğimden eminim. Ben ettik parmak tuhaf parmak izi biçimi AWS kullanımları ile eşleşecek doğruladıktan . Ama şifresini çözmeyecek.

Anahtar dosyasını yüklemeyi ve forma yapıştırmayı denedim.

Sonunda, izleyen satırsonu soymadığını anladım ve anahtardaki boş satırı sildim. Yine de, "Şifre Şifresini Çöz" seçeneğini tıkladığımda beni yeni bir hataya götürüyor:

Parolanızın şifresi çözülürken bir hata oluştu.  Lütfen özel anahtarınızı doğru girdiğinizden emin olun.

Yanıtlar:


22

AWS EC2'nin anahtar yönetimi, şifreleri ayarlanmış (şifrelenmiş) SSH özel anahtarlarıyla başa çıkmaz. Bunu algılamaz ve sadece bilgilendirici olmayan bir hata ile başarısız olur.

Özel anahtarınız diske şifreli olarak depolanmışsa (olması gerektiği gibi, IMO gibi) AWS'nin konsoluna yapıştırmak için şifresini çözmeniz gerekir.

Bunu yapmak yerine, şifrenin yerel olarak şifresini çözmeyi düşünün, böylece özel anahtarınızı AWS'ye göndermeniz gerekmez. Başlatıldıktan sonra veya get-password-data veya ilgili API isteklerini kullanarak şifrelenmiş parola verilerini (base64 kodlu) alın .

Daha sonra base64 kodunu çözebilir ve sonucun şifresini çözebilirsiniz:

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

(OpenSSH özel anahtarları tarafından kabul edilir openssl rsautl).

Yararlı bir hata ile şifre korumalı anahtarları işlemek bulamamalarıyla sorunu da etkiler komutu .ec2-get-password

Ayrıca bakınız:


1
Teşekkürler. İşte önerilerinizi izleyerek tam bir komut satırı: aws ec2 get-password-data "--instance-id=${instance_id}" | jq -r .PasswordData | base64 -D | openssl rsautl -decrypt -inkey ${my_key} ( aws-cli ve jq kullanır ).
Ben Butler-Cole

base64 bana -dbu yüzden -Dçalışır şikayet ediyor . im OS X
Saad Masood

2
OS X'te, bu boruya bir komut daha eklerdim: aws ec2 get-password-data "--instance-id=${instance_id}" | jq -r .PasswordData | base64 -D | openssl rsautl -decrypt -inkey ${my_key} | pbcopy ... şifreyi doğrudan panonuza gönderir.
Mark Maglana

1
Bu doğru cevap IMHO olarak işaretlenmelidir. Diğerlerinin cevabı buna kıyasla biraz güvensiz olduğu için
webofmars

4

Jq kullanılmadan, bu hala mümkündür, ancak döndürülen verilerin ek olarak ayrıştırılmasını gerektirir.

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

Harika çalıştı, WSL Ubuntu base64 -dyerine kullanmak zorundayım -D.
Seth Stone

3

MacOS'ta benim için bu işe yaradı:

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

Aşağıdaki satırı arayarak .pem dosyanızın bir parola ile şifrelenip şifrelenmediğini söyleyebildiğinizi belirtmek isteriz. Varsa, Amazon ile kullanmadan önce şifresini çözmeniz gerekir:

Proc-Type: 4,ENCRYPTED

Benim için çözüm buydu. AWS UI, anahtarın parola korumalı olduğunu algılamaz ve daha önce şifresini çözmeniz gerekir. Bu biraz güvensiz. Bu nedenle daha sonra şifresi çözülen dosyayı kaldırın.
webofmars

2

Mac bilgisayarımda base64 için komut satırı bağımsız değişkenleri farklı.

Bu benim için çalıştı:

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

-1
  1. ec2 kontrol paneline git
  2. mevcut anahtarı sil
  3. yeni bir anahtar çifti oluştur
  4. Bir isim seç
  5. indirin ve yerel olarak saklayın
  6. örneği başlat ve windows örneği kopyanızı indir
  7. yeni anahtar çiftini 4. adımda kullanılan adla adlandırın
  8. şifresini çözmek için bu yeni oluşturulan anahtarı kullanın

bu çalışacak


1
Evet, işe yarayacak. Ama aynı zamanda bir noktayı da kaçırıyor - Yerel bir anahtar yüklediğiniz durumu açıklıyorum.
Craig Ringer
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.