Ssh anahtar çiftinden bir .pem dosyası nasıl elde edilir?


33

Ssh-keygen'i kullanarak bir anahtar çifti oluşturdum ve iki klasik id_rsa ve id_rsa.pub'ı elde ettim.

Açık anahtarı AWS EC2 hesabıma aktardım.

Şimdi bir windows örneği oluşturdum ve bu örnek şifresini çözmek için AWS konsolu benden bir .pem dosyası istiyor. Bu .pem dosyasını iki id_rsa ve id_rsa.pub dosyalarımdan nasıl alabilirim?


2
Özel anahtar zaten PEM biçimindedir ve olduğu gibi kullanılabilir.
Michael Hampton

@ MichaelHampton, bu ssh-keygen sürümüne ve anahtar çiftini oluşturmak için kullanılan komuta bağlı olacaktır. Bazı sürümlerde, PEM yerine varsayılan olarak RFC4716 kullanılır.
avustinian

Yanıtlar:


44

Göre bu bu komut kullanılabilir:

ssh-keygen -f id_rsa -e -m pem

Bu açık anahtarınızı OpenSSL uyumlu bir formata dönüştürür. Sizin özel anahtar PEM biçiminde zaten ve (Michael Hampton belirtildiği gibi) olduğu gibi kullanılabilir.

AWS'nin PEM biçiminde SSH anahtarlarınızdan farklı bir şey (X.509) sertifikası istemediğini iki kez kontrol edin .


Fakat ortak anahtara ihtiyaçları yok, değil mi? Şifrelerinin AWS Konsolundan şifresini çözmek için özel anahtara ihtiyaçları var
Michael Bailey

OP'nin neye ihtiyacı olduğu hakkında hiçbir fikrim yok.
fuero

AWS'ye ne kadar aşina olduğunuzdan emin değilsiniz, ancak bir windows örneğini döndürürken (temel olarak sunucu) AWS, size özel anahtarınızı verinceye kadar şifreyi sizden tutar. Sonra size sunucu şifresini veriyorlar. Bu şekilde AWS'deki Windows ve Linux sunucuları özel anahtarlara bağlıdır.
Michael Bailey

1
Bu işletim sistemi X'de çalışmaz (ssh -v ==> OpenSSH_6.2p2)
chrish

3
Belgelere aykırı olarak, PUBLIC anahtarını PEM biçiminde, özel olanını çıkartacaktır. şu anda ssh-keygen, özel anahtarların dönüştürülmesini desteklememektedir.
morgwai

21

Kullanılması ssh-keygenbenim için çalıştı .pem formatında anahtar dışa.

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

Sonra .pemanahtarı gerektiği gibi kopyalayın .

Referans için:

  • -f id_rsa.pubkısım okuma giriş dosyasını göstermektedir
  • -m 'PEM bir PEM dosya tipini gösterir
  • -eseçenek çıktı ihraç edileceğini belirtir

5

id_rsa EC2 örneği şifresini çözmek için kullanmanız gereken dosyadır, ancak kopyaladığınız dosyanın öbek korumalı olmadığından emin olun.

id_rsaDosyayı geçici olarak korumasız bir şekilde alma gibi bir sorunu çözdüm :

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

2

Başlangıçta, kullanırken ssh-keygen, AWS EC2 ile uyumlu bir ortak anahtar oluşturabilirdim, ancak uyumlu olan özel anahtarlar oluştururken sorun yaşadım. Aşağıdaki AWS EC2 ile uyumlu hem genel hem de özel anahtar çiftleri oluşturur.

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

İşte her parametre hakkında bilgi:

  • -P: şifre için. Bilerek boş bırakılmıştır.
  • -t: Oluşturulacak anahtarın türünü belirtir. AWS EC2 Anahtar Çifti RSA gerektirir. Bunun benim yarattığım ortak anahtarla ilgili olduğu benim deneyimim.
  • -b: Anahtardaki bit sayısını belirtir. Desteklenen uzunluklar 1024, 2048 ve 4096'dır. EC2 Örnek Bağlantısı API'sini kullanırken SSH kullanarak bağlanırsanız, desteklenen uzunluklar 2048 ve 4096'dır.
  • -m: Anahtar üretimi için bir anahtar biçimi belirtir. Desteklenen bir özel anahtar türü oluştururken "PEM" biçiminin ayarlanması, anahtarın eski PEM özel anahtar biçiminde depolanmasına neden olur. AWS EC2 Anahtar Çiftinin eski formata ihtiyacı var
  • -f: Anahtar dosyasının çıktı dosya adını belirtir.

Kaynaklar:

Ssh-keygen hakkında daha fazla bilgi için, bakınız:  https://man.openbsd.org/ssh-keygen.1

AWS - EC2 Anahtar Çiftleri -  https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html


Mike, '-b' seçeneği için dokümantasyon eklememeyi seçti. Belki bazıları için açık, bu "4096 bit şifreleme lütfen" anlamına gelir. Bağlantılı AWS belgesinde belirtildiği gibi, "Desteklenen uzunluklar 1024, 2048 ve 4096'dır. EC2 Örnek Bağlantısı API'sini kullanırken SSH kullanarak bağlanırsanız, desteklenen uzunluklar 2048 ve 4096'dır."
nclark

@ nclard, Neden bu out -b parametresini bıraktığımı bilmiyorum. Yeni ekledim.
Mike Barlow - BarDev

0

Bir EC2 örneği başlattığınızda, ona bir anahtar çifti (veya hiçbiri) atarsınız. Daha sonra değiştirilemez.

Sadece bu anahtar çiftindeki o .pem dosyasını kullanarak Windows şifresini çözebileceksiniz.

Anahtar çifti oluşturulduğunda .pem dosyası indirilmiş olur. Tekrar alamazsın. Eğer kaybettiyseniz, şansınız tükenir.

Örnek başlatılmadan ve örneğe atanmadan önce o anahtarı AWS'ye aktarmadığınız sürece, kendi oluşturduğunuz bir .pem dosyasını kullanamazsınız.

Basitçe söylemek gerekirse, orijinal .pem dosyanız yoksa, şifreyi alamazsınız.

Düzenleme: soruyu tekrar okuduktan sonra, OP'nin anahtarını AWS'ye aktardığını fark ettim.

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.