Linux altında .ppk anahtarını OpenSSH anahtarına nasıl dönüştürebilirim?


188

Bunun Windows'ta macungen altında .ppk dosyasını dönüştürmenin mümkün olduğunu biliyorum, ancak bunu Linux'ta nasıl yapabilirim? Mümkün mü ?

Yanıtlar:


275

Putty ile yap.

  • Linux: Paket yöneticinizle PuTTY (ya da daha az PuTTY araçları) kurun:

    • Ubuntu sudo apt-get install putty-tools
    • Debian gibi apt-get install putty-tools
    • RPM tabanlı yum install putty
    • Gentoo emerge putty
    • Arch Linux sudo pacman -S putty
    • vb.
  • OS X: Homebrew'i kurun , sonra çalıştırınbrew install putty

Anahtarlarınızı, örneğin ana klasörünüz gibi bir dizine yerleştirin. Şimdi PPK anahtarlarını SSH keypairs'e dönüştürün: önbellek arama

Özel anahtarı oluşturmak için :

cd ~
puttygen id_dsa.ppk -O private-openssh -o id_dsa

ve ortak anahtarı oluşturmak için :

puttygen id_dsa.ppk -O public-openssh -o id_dsa.pub

Bu anahtarları taşıyın ~/.sshve izinlerin özel anahtarınız için özel olarak ayarlandığından emin olun:

mkdir -p ~/.ssh
mv -i ~/id_dsa* ~/.ssh
chmod 600 ~/.ssh/id_dsa
chmod 666 ~/.ssh/id_dsa.pub

Zaten bir ' git clone ' işlemi gerçekleştirmeye çalıştıysanız, bunu da yapmanız gerekebilir.

chmod 666 ~/.ssh/known_hosts

merhaba ben zaten bir .pub var o zaman yine ortak anahtar oluşturmanız gerekir
Amit Bera

1
Buraya pencerelerde nasıl yapılacağını öğrenmek için geldiyseniz, "puttygen yourkey.ppk" komutunu çalıştırın ve ardından Dönüşümler menüsünden özel anahtarı almak için "OpenSSH anahtarını ver" seçeneğini seçin.
Ryan Shillington

1
@jous'un çözümü çok daha güzel çünkü genel anahtarı dönüştürmek için özel anahtara ihtiyacınız yok + macun yüklemeniz gerekmiyor
Tobi

Benim için bu tuşa eklemek zorunda ./ssh/configdosyası Host mysite.com Hostname mysite.com IdentityFile ~/.ssh/id_dsa IdentitiesOnly yes
vladkras

Bazı eliptik eğri formatları (ECDS vb.) Henüz beta macun araçlarında mevcuttur.
Daniel W.

39
ssh-keygen -i -f id_dsa_1024_a.pub > id_dsa_1024_a_openssh.pub
  • -i flag openssh formatından farklı
  • -f bayrak giriş dosyasından okumak anlamına gelir

Kaynak: burnz.wordpress.com adresinde bir blog yazısı


17
.ppk dosyaları tam anahtar çiftleridir, yukarıdaki komutun veya blog postasının bunun için geçerli olduğunu sanmıyorum.
Peter Becker

2
Puttygen'in "Genel anahtarı kaydet" düğmesini kullanırsanız işe yaradığını düşünüyorum. ssh-keygen gerçek .ppk dosyalarını anlamıyor çünkü bu '---- BEGIN SSH2 KAMU ANAHTARI ----' işaretleyicileri eksik. Genel anahtarı .ppk dosyasında "Public-Lines: .." ve "Private-Lines: .." satırları arasında bulabilirsiniz.
jous

1
Bu benim için bir kamu anahtar dosyası ile çalıştı - puttygen özel bir anahtar gerektiriyor gibi görünüyor. Görünüşe göre bütün bunlar üs-64 bölümünü tek bir çizgide yeniden düzenlediler
Jasen

2
Bu özel anahtarları kapsamıyor gibi görünüyor, bu yüzden dönüşümü yapmak isterdim, zaten bir yere kaydedilmiş ortak bir anahtarım var ...
Gert van den Berg

Evet, gördüğüm PPK dosyaları uygun belirteçler oldu ve bu çalıştı gayet güzel .
tylerl

5

Özel anahtarı al:

.ppk dosyasını puttygen'de açın:

puttygen ~/.ssh/id_dsa.ppk

openssh olarak dışa aktar:

Dönüşümler → OpenSSH anahtarını ver

Genel anahtarı alın:

puttygen özel şifresindeki gibi açın , genel anahtar OpenSSH yetkili_ dosyasına yapıştırmak için genel anahtarın altındadır.


4

Hayatı kolaylaştırmak için bir Docker konteyner hazırladım:

docker run --rm \
           --volume=/path/to/file.ppk:/tmp/id_dsa.ppk \
           --volume=/path/to/output:/tmp/out/ \
           czerasz/putty-tools

Nerede:

  • /path/to/file.ppk - ppk dosyanızın yerel yolu
  • /path/to/output - özel ve açık anahtarın yerleştirileceği yerel yol

1
harika. görüntü için teşekkürler! ancak bu arada --volume=/path/to/file.ppk:/tmp/id.ppkve olmasınid_dsa.ppk
pHIL 4:16
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.