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.