Bagaimana cara menambahkan kata sandi ke kunci pribadi OpenSSH yang dibuat tanpa kata sandi?


213

Saya menghasilkan kunci pribadi OpenSSH menggunakan puttygen (dan mengekspornya dalam format OpenSSH). Bagaimana saya bisa meletakkan kata sandi pada kunci yang ada ini (saya tahu cara membuat kunci baru dengan kata sandi)?


13
Jika Anda melihat komentar ini, harap tandai salah satu jawaban sebagai diterima atau tulis komentar yang melewatkannya. Terima kasih!
Benjamin Atkin


Jika Anda mendapatkan Bad passphrasepada id_ed25519kunci tapi password benar, maka Anda mungkin menggunakan tingkat bawah ssh-keygenuntuk mengelolanya.
jww

Jawaban:


350

Coba perintahnya ssh-keygen -p -f keyfile

Dari halaman manual ssh-keygen

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

Contoh:

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

5
Bagi mereka yang ingin tahu apa -f adalah: Ini menentukan file input.
Neikos

4
//, @sigjuice, tolong kirimkan contoh, seperti $ ssh-keygen -p -f /Users/sigjuice/.ssh/id_rsa? Ini mungkin membantu orang yang tidak tahu cara membedakan antara kunci publik dan kunci privat, dan membantu mereka membuat kaki mereka lebih cepat basah.
Nathan Basanese

Untuk beberapa alasan, pada MacOS 10.14, ini tidak memformat file dengan Proc-Type: 4,ENCRYPTEDheader, yang tidak kompatibel dengan beberapa aplikasi yang memeriksa frasa sandi. Setelah mencoba beberapa cara untuk membuatnya berfungsi, cara termudah untuk mengatasinya adalah melakukan hal yang sama di dalam wadah Docker yang menjalankan Ubuntu dan kemudian menyalin kunci kembali ke Mac saya.
ryanbrainard

38

Gunakan opsi -p untuk ssh-keygen. Ini memungkinkan Anda untuk mengubah kata sandi daripada membuat kunci baru.

Ubah kata sandi seperti yang ditunjukkan oleh sigjuice:

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

Kata sandi yang diperlukan akan menjadi kata sandi baru. (Ini mengasumsikan Anda telah menambahkan kunci publik ~/.ssh/id_rsa.pubke file otor_keys Anda.) Uji dengan ssh:

ssh -i ~/.ssh/id_rsa localhost

Anda dapat memiliki beberapa tombol dengan nama berbeda untuk penggunaan berbeda.


//, Tolong tunjukkan contoh, dan bagaimana memeriksa bahwa opsi telah bekerja, @BillThor?
Nathan Basanese

Saya tidak mengerti. Frasa sandi diatur, saya melihat ketika saya mencoba mengubahnya lagi. Tetapi ketika saya mencoba masuk ke server jarak jauh, ia tidak meminta kata sandi kata sandi ini, mengapa?
Luka

1
Tidak apa-apa. Ia bertanya sekali per sesi :) Tidak tahu itu.
Luka

Apakah ini berarti Anda harus keluar dan masuk lagi? Menutup jendela terminal dan membukanya kembali tidak berhasil untuk saya.
Simon H

Anda dapat mengetik ssh-add -Duntuk menghapus identitas cache Anda. Kemudian, coba sambungkan lagi dan ia akan menanyakan kata sandi Anda. Gunakan ssh-add -luntuk melihat daftar identitas cache Anda.
Scott Nedderman

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.