Parola olmadan oluşturulan bir OpenSSH özel anahtarına nasıl parola ekleyebilirim?


213

Puttygen kullanarak bir OpenSSH özel anahtarı oluşturdum (ve OpenSSH formatında dışa aktardım). Bu mevcut anahtara bir parolayı nasıl koyabilirim (Parolayla yeni bir anahtarın nasıl oluşturulacağını biliyorum)?


13
Bu yorumu görürseniz, lütfen cevaplardan birini kabul edilmiş olarak işaretleyin veya neyi kaçırdıklarını söyleyen bir yorum yazın. Teşekkürler!
Benjamin Atkin

1
Ekle, değiştirme veya kaldırma ile aynıdır: stackoverflow.com/questions/112396/… , değişiklik için aynıdır: serverfault.com/questions/50775/…
Ciro Santilli at 冠状 病 六四 事件 法轮功

Eğer alırsanız Bad passphrasebir de id_ed25519anahtar ama şifre doğru, o zaman muhtemelen aşağı seviyede kullanan ssh-keygenonu yönetmek.
jww

Yanıtlar:


350

Komutu deneyin ssh-keygen -p -f keyfile

Ssh-keygen man sayfasından

 -p      Requests changing the passphrase of a private key file instead of
         creating a new private key.  The program will prompt for the file
         containing the private key, for the old passphrase, and twice for
         the new passphrase.

 -f filename
         Specifies the filename of the key file.

Misal:

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

5
-F'nin ne olduğunu bilmek isteyenler için: Girdi dosyasını belirtir.
Neikos

4
//, @sigjuice, lütfen aşağıdaki gibi bir örnek gönderir misiniz $ ssh-keygen -p -f /Users/sigjuice/.ssh/id_rsa? Bu, genel ve özel anahtar arasındaki farkı nasıl anlayacağını bilmeyen insanlara ve ayaklarının daha hızlı ıslanmasına yardımcı olabilir.
Nathan Basanese

Bazı nedenlerden dolayı, MacOS 10.14'te bu, dosyayı Proc-Type: 4,ENCRYPTEDparolayı denetleyen bazı uygulamalarla uyumsuz olan başlıkla biçimlendirmez . Çalıştırmak için çeşitli yollar denedikten sonra, geçici olarak çözmenin en kolay yolu, aynı şeyi Ubuntu çalıştıran bir Docker kapsayıcısında yapmak ve ardından anahtarı Mac'ime geri kopyalamaktı.
1919'da ryanbrainard

38

Ssh-keygen için -p seçeneğini kullanın. Bu, yeni bir anahtar oluşturmak yerine şifreyi değiştirmenize olanak tanır.

Sigjuice'in gösterdiği gibi şifreyi değiştirin:

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

Gerekli şifre yeni şifre olacaktır. (Bu, genel anahtarı ~/.ssh/id_rsa.pubyetkili_anahtarlar dosyalarınıza eklediğinizi varsayar .) Ssh ile test edin:

ssh -i ~/.ssh/id_rsa localhost

Farklı kullanımlar için farklı adlara sahip birden fazla anahtarınız olabilir.


//, Lütfen bir örnek gösterir misiniz ve seçeneğin işe yarayıp yaramadığını nasıl kontrol edersiniz, @ BillThor?
Nathan Basanese

Ben anlamıyorum. Parola ayarlandı, tekrar değiştirmeye çalıştığımda anlıyorum. Ancak uzak sunucuya giriş yapmaya çalıştığımda bu parola şifresini sormuyor, neden?
Luka

1
Bu iyi. Oturum başına bir kez sorar :) Bunu bilmiyordum.
Luka

Bu, oturumu kapatıp tekrar açmanız gerektiği anlamına mı geliyor? Terminal penceresini kapatmak ve tekrar açmak benim için işe yaramıyor.
Simon H

ssh-add -DÖnbelleğe alınmış kimliğinizi kaldırmak için yazabilirsiniz . Ardından, tekrar bağlanmayı deneyin, parolanızı girmenizi isteyecektir. ssh-add -lÖnbelleğe alınan kimliklerinizin bir listesini görmek için kullanın .
Scott Nedderman

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.