Bagaimana cara mengubah frasa sandi kunci pribadi saya?


284

Saya memiliki pasangan kunci publik / pribadi. Kunci pribadi dilindungi kata sandi, dan enkripsi dapat berupa RSA atau DSA. Kunci-kunci ini adalah jenis yang Anda hasilkan ssh-keygendan umumnya disimpan di bawah ~/.ssh.

Saya ingin mengubah kata sandi kunci pribadi. Bagaimana cara melakukannya, pada shell Unix standar?

Juga, bagaimana cara menghapus kata sandi? Ubah saja menjadi kosong?

Jawaban:


372

Untuk mengubah frasa sandi pada kunci DSA default Anda:

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

lalu berikan frasa sandi lama dan baru Anda (dua kali) saat diminta. (Gunakan ~/.ssh/id_rsajika Anda memiliki kunci RSA.)

Lebih detail dari 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
Ini dari halaman pengiriman manual dengan net-misc / openssh-5.2_p1-r2 di Gentoo Linux.
Mike Mazur

12
Juga, demi orang yang malas di masa depan, saya akan membalik urutan: penjawab cepat dulu, halaman manual kemudian.
kch

2
Saya pikir jawabannya hebat karena keduanya menunjukkan di mana Anda dapat mengubah kata sandi, dan di mana mencari jawabannya. Saya telah membantu banyak orang menyiapkan kunci ssh, dan bagi mereka benar-benar mengingat alat mana yang mereka gunakan tidak selalu mudah. Selain itu, mencari jawaban di 'internet adalah pilihan pertama bagi banyak ...
sastorsl

5
Jika mesin Anda menggunakan OpenSSH> = 6.5, Anda harus menggunakan -oopsi untuk mengaktifkan format kunci privat yang baru (bcrypt sebagai KDF secara default). Dengan versi OpenSSH yang lebih lama, gunakan PKCS # 8 untuk file kunci pribadi yang lebih aman .
Quinn Comendant

2
@ FranciscoLuz perintah dalam jawaban saya khusus untuk kunci DSA. Jika Anda memiliki kunci RSA, maka perintah Anda sudah benar. Saya menambahkan uraian pada jawaban untuk mengatasi ini.
Mike Mazur

-9

Hapus kunci publik / pribadi SSH Anda:

rm ~/.ssh/id_rsa*

Buat kembali keypair, pilih frasa sandi baru:

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

Tambahkan kunci pribadi yang baru dibuat ke Keychain OS X Anda untuk menyimpan frasa sandi dan mengelola membuka kunci secara otomatis:

ssh-add -K ~/.ssh/id_rsa

Salin kunci publik ke clipboard OS X untuk menambahkan ke layanan web seperti GitHub, dll.

cat ~/.ssh/id_rsa.pub | pbcopy

Tambahkan kunci publik yang baru Anda buat ke ~/.ssh/authorized_keysfile server jarak jauh. Pastikan untuk memastikan izin yang benar dari ~/.sshfolder jarak jauh (700) dan ~/.ssh/authorized_keys(600). Anda mungkin ingin menyelidiki menggunakan ssh-copy-iduntuk memudahkan proses ini.


3
Poster itu bertanya bagaimana mengubah frasa sandi pada kunci mereka, tidak membuangnya dan menghasilkan yang baru; dan mereka tidak pernah menyebut OS X.
musicinmybrain

2
Saya akan memutakhirkan jawaban ini jika bukan karena tiga masalah ini: 1. Menghapus kunci lama bukanlah awal yang baik karena Anda akan membutuhkannya saat memperbarui authorized_keys. 2. Anda belum menyebutkan mengapa membuat kunci baru lebih baik daripada mengubah kata sandi pada yang lama. 3. Anda membuat asumsi tentang OS, yang tidak didukung oleh pertanyaan.
kasperd
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.