Cara mengubah kunci gpg dari penyimpanan kata sandi pass

15

Seseorang dapat menggunakan passsebagai pengelola kata sandi untuk menyimpan kata sandi.

Satu hal yang tidak jelas dari manual adalah apakah mungkin untuk dengan mudah mengubah kunci gpg yang digunakan. Seseorang menginisialisasi penyimpanan kata sandi dengan kunci gpg, tetapi saya bertanya-tanya apa yang harus dilakukan jika kunci misalnya menjadi usang.

Apakah ada cara mudah untuk mendekripsi dan mengenkripsi ulang semua kata sandi yang tersimpan di pengelola kata sandi dengan kunci lain?

Willem Van Onsem
sumber

Jawaban:

21

Gunakan pass init [-p path] <gpg-id>tempat <gpg-id>menentukan kunci gpg baru yang Anda inginkan untuk mengenkripsi kata sandi Anda. Menurut passhalaman manual ,

Jika gpg-id yang ditentukan berbeda dari kunci yang digunakan dalam file yang ada, file-file ini akan dienkripsi ulang untuk menggunakan id baru.

Tampaknya ini berfungsi setidaknya dalam pass 1.6.5. Harap perhatikan bahwa Anda akan memerlukan akses ke kunci pribadi gpg lama untuk mendekripsi dan kemudian enkripsi ulang kata sandi Anda.

Peringatan 1

Jika salah satu passdirektori Anda tidak dienkripsi ulang dengan kunci baru, mungkin itu memiliki .gpg-idfile yang menimpa gpg-id yang ditentukan di tingkat atas password-storedirektori. Saya tidak akan membahas bagaimana menyelesaikan masalah ini dalam pertanyaan ini karena mungkin akan sedikit terlalu menyinggung, tetapi saya akan mengatakan bahwa passhalaman manual melakukan pekerjaan yang cukup baik untuk menjelaskannya.

Peringatan 2

Jika ~/.password-storedirektori Anda adalah repo git (yaitu, Anda sekaligus berlari pass git init) maka harap dicatat bahwa enkripsi lama akan tetap dalam sejarah komit git repo; jika kekhawatiran Anda tentang kunci gpg yang berpotensi dikompromikan maka Anda harus mengambil langkah apa pun yang diperlukan untuk menghilangkan sejarah git itu.

Wayne Warren
sumber