pass and gpg: Tidak ada kunci publik

13

Saya menggunakan pass untuk waktu yang cukup lama; tetapi setelah mengekspor penyimpanan kunci dan kunci gpg ke komputer lain saya melihat output berikut:

$ gpg --list-key
/home/shved/.gnupg/pubring.gpg
------------------------------
pub   2048R/FA829B53 2015-04-28
uid       [ultimate] Yury Shvedov (shved) <[email protected]>
sub   2048R/74270D4A 2015-04-28

Kunci saya diimpor dan dipercaya, tetapi tidak dapat digunakan:

pass insert test
Enter password for test: 
Retype password for test: 
gpg: 2048R/FA829B53: skipped: No public key
gpg: [stdin]: encryption failed: No public key
fatal: pathspec '/home/shved/.password-store/test.gpg' did not match any files

Apa yang bisa saya lakukan untuk menggunakan kunci saya lagi?

dicukur
sumber

Jawaban:

12

pass menggunakan gnupg2, yang tidak membagikan kuncinya dengan gnupg 1.x.

Impor kunci Anda lagi menggunakan gnupg2 bukan gnupg. Jika Anda sudah memiliki kunci di gnupg saat mesin target dijalankan:

$ gpg --export-secret-keys > keyfile
$ gpg2 --import keyfile

Setelah mengimpor, Anda mungkin perlu memperbarui kepercayaan pada kunci Anda. Anda akan melihat Secret key is available.pesan jika impor berhasil:

$ gpg2 --edit-key FA829B53
[...]
Secret key is available.

sec  rsa4096/FA829B53
     created: 2015-03-14  expires: 2017-03-13  usage: SC  
     trust: unknown      validity: ultimate
ssb  rsa4096/74270D4A
     created: 2015-03-14  expires: 2017-03-13  usage: E   
[ultimate] (1). Yury Shvedov (shved) <[email protected]>

Sekarang perbarui kepercayaan pada kunci Anda:

gpg> trust
[...]
Your decision? 5
Do you really want to set this key to ultimate trust? (y/N) y
[...]
gpg> save
Łukasz Lis
sumber
pass (setidaknya versi 1.6.3) gpgtidak menggunakan gpg2. Dan gpg2 hanyalah desain ulang. Hanya dengan versi 2.1, beberapa perubahan muncul (menggabungkan kunci publik dan privat dalam keyring publik.
Anthon
Itu tidak benar untuk versi saya (1.6.5). Dari kode sumber: 10 GPG = "gpg" 11 ekspor GPG_TTY = "$ {GPG_TTY: - $ (tty 2> / dev / null)}" 12 yang gpg2 &> / dev / null && GPG = "gpg2" 13 [ [-n $ GPG_AGENT_INFO || $ GPG == "gpg2"]] && GPG_OPTS + = ("--batch" "--use-agent") Ini menyiratkan bahwa 'pass' menggunakan gpg kecuali gpg2 hadir pada sistem yang sama.
Łukasz Lis
1
jadi ia menggunakan gpg kecuali gpg2 diinstal dan untuk tujuan pass ini kompatibel, jika tidak, Anda akan mendapatkan masalah yang mengerikan jika Anda menginstal gpg2 beberapa saat setelah Anda mulai menggunakan pass (yang Anda seharusnya tidak berada di tempat pertama karena itu terkadang meninggalkan data yang tidak terenkripsi di direktori "penyimpanan" Anda).
Anthon
Pertama, ini bukan yang Anda bantah dalam balasan pertama Anda. Kedua, Anda belum menjawab poin saya tentang mereka yang tidak membagikan keyring. Ketiga, mereka hanya kompatibel karena keduanya dapat mendekripsi pesan jika diberi kunci rahasia yang tepat.
Łukasz Lis
7

Garis output

gpg: 2048R/FA829B53: skipped: No public key

menunjukkan passinisialisasi yang salah . Anda diinisialisasi passdengan perintah pass init 2048R/FA829B53sedangkan Anda harus melakukannya dengan perintah pass init FA829B53. Untuk mengatasi masalah, Anda harus mengubah konten file ~/.password-store/.gpg-iddari 2048R/FA829B53menjadi FA829B53dan melakukan perubahan.

PS

Semua saran @ Łukasz Lis sudah benar dan Anda harus menyelesaikannya juga. Dalam kasus lain, Anda tidak akan dapat mendekripsi pass:

$ pass -c test

akan memberi Anda kesalahan: gpg: decryption failed: No secret key

Andriy
sumber
Berguna. Itu bisa terjadi pada tipe (mis-) pass init SomethigElseThanFirstStore.
Nikos Alexandris
0

Saya perhatikan ini ketika membuat toko baru dan menginisialisasi dengan id kunci seperti "2048R / FA829B53" yang saya pikir adalah bagaimana hal itu dilakukan di masa lalu, dan melihat cadangan lama .gpg_id berbeda.

Namun, sekarang sepertinya hanya FA829B53 yang digunakan, dan di halaman manual saat ini penulis menggunakan alamat emailnya.

Saya akan memeriksa file gpg_id, bagi saya di toko baru itu hanya FA829B53 dan tidak ada baris lain

Buckshee
sumber
0

Verifikasi apakah kunci tepercaya Anda sama dalam file ~/.password-store/.gpg-id

m3asmi
sumber
Ini tidak memberikan jawaban untuk pertanyaan itu. Untuk mengkritik atau meminta klarifikasi dari penulis, tinggalkan komentar di bawah posting mereka. - Dari Ulasan
Kevdog777
memang saya memiliki masalah yang sama, saya menyelesaikannya dengan ini
m3asmi