ssh-keygen RSA özel anahtarı oluşturmaz


71

Özel bir anahtar oluşturmaya çalışıyorum ve sorun yaşıyorum.

Kullandığımda ssh-keygen -t rsa -b 4096 -C "your_email@example.com", aşağıdaki formatta özel bir anahtar alıyorum.

-----BEGIN OPENSSH PRIVATE KEY-----
uTo43HGophPo5awKC8hoOz4KseENpgHDLxe5UX+amx8YrWvZCvsYRh4/wnwxijYx
...
-----END OPENSSH PRIVATE KEY-----

Ve bu kullanmaya çalıştığım bir uygulama için kabul edilmiyor.

Aşağıdaki RSA biçiminde bir anahtar bekliyorum.

-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: AES-128-CBC,25737CC2C70BFABADB1B4598BD8AB9E9

uTo43HGophPo5awKC8hoOz4KseENpgHDLxe5UX+amx8YrWvZCvsYRh4/wnwxijYx
...
-----END RSA PRIVATE KEY-----

Doğru formatı nasıl oluşturabilirim? Bu çok garip çünkü sahip olduğum diğer tüm mac'lar, sorun yaşadığım hariç, doğru formatı oluşturuyor.

Yeni kurulu bir Mac OS Mojave kullanıyorum


ve diğer Mac'ler Mojave'da değil mi? Ben de Mojave'deyim ve "yeni" openssh anahtar biçimini aldım. Bu yüzden diğer Mac'lerin daha düşük sürümlerde olduğunu varsayıyorum. Kullanılan OpenSSL sürümünü kontrol edin.
Zina

@ Zina diğer Mac'ler de Mojave'de ve aynı OpenSSL sürümündedir.
Ay

RSA varsayılan tip olmalıdır. Ya -t rsaseçeneği tamamen atlarsanız ?
guzzijason

@guzzijason aynı. Beni deli eden bu. Mac'imde -t rsa'yı atlasam bile (çalışmakta), doğru bir şekilde RSA üretiyor.
Ay

Ben de aynı sorunu yaşadım. Çözüm olarak, anahtar oluşturmak için openssh'ın eski sürümünü kullandım. Oluşturulan anahtarınızın openssl rsa -text -in key_file -passin 'pass: passphrase' ile doğru olup olmadığını test edebilirsiniz. Sürüm 7.4p1-16 çalışır.
Atip

Yanıtlar:


76

Son zamanlarda aynı problemle karşılaştım (mojave 10.14.1'e yükselttikten sonra), bu konuda 2 olası çözüm var.

  • Ssh-keygen binary'inizi düşürün (herhangi bir linux / docker görüntüsünden eski sürümü kolayca alabilirsiniz)

VEYA

  • -m PEMSsh-keygen komutunuza seçenek ekleyin . Örneğin, ssh-keygen -m PEM -t rsa -b 4096 -C "your_email@example.com"ssh-keygen'i PEMformat olarak dışa aktarmaya zorlamak için koşabilirsiniz .

Geçerli ssh-keygen versiyonunda mojave'deki gibi görünüyor, varsayılan ihracat formatı buradaRFC4716 belirtildiği gibi


1
Varsayılan dışa aktarma publickey biçimi gerçekten rfc4716'dır, ancak Q'daki biçim bir iç özel biçimdir ve OpenSSH'nin 1999'da (!) Bulunmayan ve artık geçerli olarak açıklanmayan 'yeni' biçimidir; 6.0 ila 6.3'ü deneyin.
dave_thompson_085

3
Yanıtı düzenleyemiyorum ancak lütfen 1. ve 2. adımların bağımsız çözümler değil, ardışık adımlar olduğundan emin olun. Bir defalık anahtar üretimi için düşürmenize gerek yoktur. Sadece ekleyin-m PEM
sdoxsee

49

OpenSSH özel anahtar formatına sahip yeni anahtarlar, ssh-keygen yardımcı programı kullanılarak eski PEM formatına dönüştürülebilir.

ssh-keygen -p -m PEM -f ~/.ssh/id_rsa

Sadece bu sonucu elde etmek için eski OpenSSH'ye düşürmeye gerek yoktur.


Evet. Kabul ettiğim cevabın yorumlarında da bahsettiğim gibi serverfault.com/questions/939909/…
sdoxsee

9
Kabul edilen cevapta net olmayan şey, yeni bir anahtar çifti oluşturmanıza gerek olmamasıdır. Mevcut anahtarınızı alıp bu komutla dönüştürebilirsiniz. Dosyanın üzerine yazıyor, bu yüzden daha önce bir yedekleme yapmanın iyi bir fikir olduğunu düşünüyorum.
martintama

Mevcut bir özel anahtarın RSA formatına nasıl dönüştürüleceğine ilişkin talimatlar eklediğiniz için teşekkür ederiz. Sadece pastırmamı kurtardım!
Craig Blaszczyk
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.