Özel anahtar şifremi nasıl değiştiririm?


283

Mevcut bir ortak / özel anahtar çiftim var. Özel anahtar şifre korumalıdır ve şifreleme RSA veya DSA olabilir. Bu anahtarlar, oluşturduğunuz ssh-keygenve genellikle altında depoladığınız türdür ~/.ssh.

Özel anahtarın şifresini değiştirmek istiyorum. Standart bir Unix kabuğuna nasıl gidebilirim?

Ayrıca şifreyi nasıl kaldırabilirim? Sadece boş olarak değiştirilsin mi?

Yanıtlar:


371

Varsayılan DSA anahtarınızdaki parolayı değiştirmek için:

$ ssh-keygen -p -f ~/.ssh/id_dsa

daha sonra istemlerde eski ve yeni parolanızı girin (iki kez). ( ~/.ssh/id_rsaBir RSA anahtarınız varsa kullanın .)

Daha fazla ayrıntı man ssh-keygen:

[...]
SYNOPSIS
    ssh-keygen [-q] [-b bits] -t type [-N new_passphrase] [-C comment]
               [-f output_keyfile]
    ssh-keygen -p [-P old_passphrase] [-N new_passphrase] [-f keyfile]
[...]
     -f filename
             Specifies the filename of the key file.
[...]
     -N new_passphrase
             Provides the new passphrase.

     -P passphrase
             Provides the (old) passphrase.

     -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.
[...]

1
Bu, Gentoo Linux'ta net-misc / openssh-5.2_p1-r2 ile gönderilen sayfalardandır.
Mike Mazur

12
Ayrıca, gelecekteki tembel kişi adına, sırayı tersine çevirirdim: önce hızlı cevap, man sayfası sonra.
kch

2
Hem parolayı nerede değiştirebileceğinizi hem de cevabı nerede arayacağınızı gösterdiğinden, cevabın harika olduğunu düşünüyorum. Birçok kişiye ssh anahtarları kurma konusunda yardımcı oldum ve onlar için kullandıkları aracı kullanmak her zaman kolay değil. Ayrıca, 'net' cevabını aramak birçokları için ilk seçenektir ...
sastorsl

5
Makineleriniz OpenSSH> = 6.5 kullanıyorsa-o , yeni özel anahtar formatını etkinleştirme seçeneğini kullanıyor olmalısınız (varsayılan olarak KDF olarak bcrypt). Eski OpenSSH sürümlerinde daha güvenli özel anahtar dosyalar için PKCS # 8 kullanın .
Quinn Comendant

2
@ FranciscoLuz Cevabımdaki komut bir DSA anahtarına özgüdür. Bir RSA anahtarınız varsa, komutunuz doğrudur. Bunu ele almak için cevaba bir bulanıklık ekledim.
Mike Mazur,

-9

SSH ortak / özel anahtarlarınızı kaldırın:

rm ~/.ssh/id_rsa*

Yeni bir parola seçerek, tuş takımını yeniden oluşturun:

ssh-keygen -t rsa -f ~/.ssh/id_rsa

Şifreyi saklamak ve kilidini otomatik olarak açmayı yönetmek için yeni oluşturulan özel anahtarı OS X Anahtarlığınıza ekleyin:

ssh-add -K ~/.ssh/id_rsa

GitHub vb. Web servislerine eklemek için ortak anahtarı OS X panosuna kopyalayın.

cat ~/.ssh/id_rsa.pub | pbcopy

Yeni oluşturulan ortak anahtarınızı ~/.ssh/authorized_keysuzak sunucunun dosyasına ekleyin . Hem uzak ~/.sshklasörün (700) hem de ~/.ssh/authorized_keys(600) doğru izinlerini aldığınızdan emin olun . ssh-copy-idBu işlemi kolaylaştırmak için kullanarak araştırmak isteyebilirsiniz .


3
Poster, anahtarlarındaki parolayı nasıl değiştireceğini sordu, atıp yeni bir tane üretmedi; ve OS X'den hiç bahsetmediler.
musicinmybrain

2
Bu üç konu için olmasaydı bu cevabı iptal ederdim: 1. Eski anahtarları silmek iyi bir başlangıç ​​değil çünkü güncellerken bu bilgilere ihtiyacınız olacak authorized_keys. 2. Yeni anahtar oluşturmanın neden eski şifreleri değiştirmekten daha iyi olduğunu söylemediniz. 3. İşletim sistemi hakkında soru tarafından desteklenmeyen varsayımlarda bulunuyorsunuz.
kasperd
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.