PuTTYgen tarafından oluşturulan bir SSH özel anahtarını nasıl kurarım?


49

PuTTYgen tarafından oluşturulan ortak anahtarı authorized_keysdosyaya ekleyerek Linux sunucumu ev bilgisayarımdan bağlantıları kabul edecek şekilde ayarlıyorum .

Şimdi aynı makineye bağlanmaya çalışıyorum, ama bu sefer başka bir Ubuntu makinesinden. Aynı özel anahtarı kullanmak zorundayım (garip bir nedenden dolayı sorma ..) ve müşterim Ubuntu’ya nasıl yükleyeceğimi bilemiyorum.

Başka bir formata dönüştürmek zorunda mıyım?

Yanıtlar:


24

Özel anahtarınızın ubuntu'da çalışıp çalışmayacağından emin değilim, ama buna değer. sadece /home/yourName/.ssh/özel anahtarı id_rsave genel anahtarı olarak adlandırmak için anahtarları kopyalayın id_rsa.pub.

Bu işe yaramazsa ssh-keygen, yeni ortak anahtarı kullanarak sunucuya kopyalayıp kendi ssh anahtar çiftinizi oluşturabilir ve ssh'yi aşağıdaki gibi

ssh -i ~/.ssh/id_rsa_ubuntu.pub <hostName>

Onunla oynamadım ama ssh-agent’ın ssh anahtarlarını yönetmek için de kullanılabileceğini duydum.


3
Bu ubuntu'da işe yarıyor. Ancak, önceden kullanmamış olduğunuzu bilmiyorsanız, zaten varsa (üzerine yeni anahtarı kopyalayarak) mevcut bir id_rsa anahtarının üzerine yazmadığınızdan emin olun.
David Oneill,

5
Bu cevapta tamamen bilgi eksikliği var, id_rsadosyayı nasıl alıyorsunuz (PuTTYgen'deki anahtarı dönüştürerek)
Martin Prikryl

38

Tesadüf eseri, sadece bunu yapmak zorunda kaldım. Anahtarları OpenSSH formatına dönüştürmeniz gerekir. Bunu yapmak için komut şudur:

ssh-keygen -i -f puttygen_key > openssh_key

o zaman içeriğini kopyalamak openssh_keyiçin .ssh/authorized_keyssadece normal bir SSH anahtarla olarak.

-iSeçenek söyler biridir ssh-keygendönüşüm yapmak. -fSeçeneği nerede dönüştürmek için anahtarı bulmak için söyler.

Bu şifrelenmemiş anahtarlar için çalışır . Genel anahtar şifrelenmemiş ancak özel anahtar şifrelenmiş. Özel anahtarın şifresini çözmenin, dönüştürmenin ve yeniden şifrelemenin bir yolu olup olmadığından emin değilim. Diğer cevapların önerdiği gibi yeni anahtarlar kullanmak daha kolay olabilir (ve ssh-agentşu anki konuya dikey olsa da kullanmanızı öneririm ).


1
Bu cevap benim sorunumu çözdü. Anahtarı dönüştürmek zorunda kaldım. Thanks
leticia

1
Bu, sadece genel anahtarı dönüştürerek sorunun bir kısmını çözer. @ User18617'nin cevabını özel anahtarı da dönüştürmek için kullandım.
14'te


@ ÉdouardLopez puttygen_key, özel anahtarınız (* .ppk) değil, genel anahtarınız olmalıdır.
Endolit

28

Andrew Stacey , anahtarları Linux'ta OpenSSH formatına nasıl dönüştüreceğinizi açıkladı .

Aynı şeyi Windows'ta yapmak istiyorsanız, şu adımları izleyin:

  1. PuTTYGen'i başlatın.
  2. "Yükle" ye tıklayın.
  3. Özel anahtarınızı seçin ve parolanızı girin.
  4. 'Dönüşümler' menüsünden "OpenSSH anahtarını ver" seçeneğini seçin.
  5. Hedef dosya adını seçin.

1
Bunun bir Ubuntu bölümü olduğunu bilmeme rağmen, bunun benim için Mac OS X'te çalıştığını söylemek istedim. Oluşturulan özel anahtarımı yukarıda anlatıldığı gibi Windows'ta dönüştürdüm, daha sonra mac'umda ~ / .ssh / id_rsa dizinine kopyaladım. chmod id_rsa 600'ü Mac'in bundan şikayet etmemesi için.
Richard,

24

Ubuntu'daki Putty anahtar çiftlerinizi OpenSSH anahtarları olarak nasıl kullanabilirsiniz:

apt-get install putty-tools #Install Putty tools in Linux
cd /my-putty-keys
puttygen mykey-sec.ppk ‐O private‐openssh ‐o my‐openssh‐key.sec
ssh-keygen -i -f mykey-pub.ppk > my-openssh-key.pub

4. adımın amacı, genel anahtarınızı * ~. / Ssh / yetkili_ anahtarlarına * eklemek olduğundan, Putty gizli anahtarınızı 4'ünü ara adım olarak kullanmak yerine kullanabilirsiniz:

puttygen ‐L mykey-sec.ppk >> $HOME/.ssh/authorized_keys

1
4. adım hakkında: özel anahtar adı mykey-sec.ppk ise, bu durumda kaynak dosya adı genellikle mykey-sec.pub olur.
Kinjal Dixit

2
Bir genel anahtarı (muhtemelen RFC 4716 biçiminde) adlandırmak mykey-pub.ppkoldukça karışık bir durumdur çünkü .ppkdosya tamamen farklı bir biçime sahiptir ve anahtar çiftleri için kullanılır (yalnızca genel anahtar değil).
Martin Prikryl

Bu son macun hattı, debian 9'daki macun araçlarını kurduktan sonra benim için mükemmel çalıştı. Buradaki diğer hatlar ve cevaplar işe yaramadı.
Tim

Garip bir şekilde aldım puttygen: unknown output type `private‐openssh've puttygen: cannot handle more than one input filebu yüzden karakterleri kaynak kodundan kopyaladım ve genel anahtarımı tamamen başka bir şey olarak değiştirdim
CPHPython 14:18

Bir yanıt olarak, bu cevaptaki komutları çalıştırmayı ve "puttygen: birden fazla giriş dosyasını idare edemiyorsanız" komutunu çalıştırmayı denerseniz, "özel ‐ openssh" içindeki çizgi karakterinin gerçek bir ASCII çizgi olarak yapıştırılmaması olasıdır. yani puttygen tanımıyor. Bunun yerine, kelimeyi kendiniz yazın ve çalışması gerekir.
Matt Styles,

9

PuTTY / PuTTYgen kendi tescilli anahtar çifti formatını kullanır. OpenSSH anahtar formatlarının hüküm sürdüğü Linux'ta çalışmaz.

  • PuTTYgen'de, OpenSSH dosyası tarafından kullanılan formatta bir genel anahtarı doğrudan görebilir (ve kopyala + yapıştır) authorized_keys.

  • Genel anahtarı biçiminde kaydetmek için Genel anahtarı kaydet düğmesini kullanabilirsiniz (RFC 4716). Linux'ta dosya genellikle adlandırılır (veya ). Ancak bu genellikle gerekli değildir..pubid_rsa.pubid_dsa.pub

  • Özel anahtarı OpenSSH biçiminde dışa aktarmak için Dönüşümler> OpenSSH anahtarını kullan . Linux'ta dosya genellikle adlandırılır (veya ) ve klasörde saklanır .id_rsaid_dsa.ssh

PuTTY anahtar üreticisi olan PuTTYgen'in kullanımına bakınız .

Dönüşüm yapmak için PuTTYgen'in Linux sürümünü de kullanabilirsiniz. Linux sürümü, Windows sürümünün aksine komut satırıdır.

puttygen mykey.ppk ‐O private‐openssh ‐o id_rsa

Linux puttygenman sayfasına bakınız .


2

Bir tane daha net bir çözüm buldum.

Açık puttygenDönüşüm ve tıklayın - bir anahtar oluşturmak, sonra da Üst menüye gidin ihracat openssh anahtarını

Dosya içeriği ile başlayacak ve bitecek

-----BEGIN RSA PRIVATE KEY----- 

-----END RSA PRIVATE KEY-----
  • Root için bu anahtar dosyasını kopyala /root/.ssh/olarak id_rsaveyaid_dsa

  • başka bir kullanıcı için bu anahtar dosyasını kopyala /home/user/.ssh/olarak id_rsaveyaid_dsa

Not :

  1. Düzenlemeye gerek yok authorized_keys.
  2. Amazon linux kullanıyorum
  3. Dosya izni 0600

1

* * Dikkatli olun ve kutuya konsol erişiminiz olduğundan emin olun, çünkü doğru yapmazsanız, konsoldan düzeltene kadar tekrar ssh yapamazsınız.

İşlem düşündüğünüzden çok daha kolay. Puttygen'de oluşturduğunuz genel / özel anahtar çiftini tekrar yükleyin. Puttygen'de, ekranın ortasında şöyle bir pencere göreceksiniz: "Açık SSH yetkili_keys dosyasına yapıştırmak için genel anahtar:".

kutunun tüm içeriğini vurgulayın ve kopyalamak için control-c tuşlarına basın.

Linux kutunuza SSH yazıp "/home/username/.ssh/authorized_keys" dosyasına yapıştırın. Nano kullanmayı tercih ediyorum ve yapıştırmak için sağ tıklayın. Hepsinin bir satırda kaldığından emin olun.

/ Etc / sshd_config dosyanızı gerektiği gibi değiştirin ve sshd servisinizi yeniden başlatın: "service ssh restart"

Örnek bir sshd_config dosyasına ihtiyacınız varsa, bana bildirin ve benimkini gönderebilirim.

Bunu Ubuntu 8.04, 10.04 ve 12.04 LTS sunucusunda yaptım ve kaygan çalışıyor.


0

Bu konunun hala etkin olup olmadığından emin değilim, ancak şimdi Ubuntu çekirdeğini destekleyen Windows 10 yıldönümü baskısında da benzer bir sorunla karşılaştım. Linux makinesine bağlanmak için önce Putty'yi kullanıyorum. Linux biçiminde id_rsa oluşturmak için, puttykeygen kullanın ve macun özel anahtarınızı yükleyin, ardından dönüştürmeye tıklayın ve ikinci seçeneği seçin.

Putty KeyGenerator sözleşmeleri

yeni oluşturulan anahtar dosyasını açın ve tüm içeriğini kopyalayın, içeriğinizin şu şekilde başladığından emin olun: ----- BEGIN RSA ÖZEL KEY ----- ve ---- END RSA ÖZEL KEY ----- ile biter

vi id_rsa ~ / .ssh dizininize kopyalayın ve kopyalanan içerikleri yapıştırın, çünkü bu gereklidir çünkü linux aksi takdirde dosyanın içeriğini anlamaz.

Hepsi bu, uzak sunucuya ssh'yi deneyin, çalışması gerekiyor.

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.