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)?
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.
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.
Bad passphrase
padaid_ed25519
kunci tapi password benar, maka Anda mungkin menggunakan tingkat bawahssh-keygen
untuk mengelolanya.Jawaban:
Coba perintahnya
ssh-keygen -p -f keyfile
Dari halaman manual ssh-keygen
Contoh:
sumber
$ 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.Proc-Type: 4,ENCRYPTED
header, 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.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:
Kata sandi yang diperlukan akan menjadi kata sandi baru. (Ini mengasumsikan Anda telah menambahkan kunci publik
~/.ssh/id_rsa.pub
ke file otor_keys Anda.) Uji dengan ssh:Anda dapat memiliki beberapa tombol dengan nama berbeda untuk penggunaan berbeda.
sumber
ssh-add -D
untuk menghapus identitas cache Anda. Kemudian, coba sambungkan lagi dan ia akan menanyakan kata sandi Anda. Gunakanssh-add -l
untuk melihat daftar identitas cache Anda.Anda juga dapat menggunakan
openssl
:lihat: https://security.stackexchange.com/a/59164/194668
sumber