Bagaimana cara menentukan kunci pribadi saat mendekripsi file menggunakan GnuPG?

22

Saya mencoba mendekripsi file dengan GnuPG, tetapi ketika menggunakan perintah di bawah ini:

gpg --decrypt filename.gpg

Saya mendapatkan pesan berikut:

gpg: encrypted with RSA key, ID 3662FD5E
gpg: decryption failed: No secret key

Saya sudah memiliki kunci pribadi yang dengannya file telah dienkripsi, tetapi saya tidak yakin bagaimana saya bisa menentukannya. Apakah ada opsi yang bisa saya sertakan ketika melakukan dekripsi untuk menunjuk ke kunci ini?

Crista23
sumber
1
Apa yang gpg --list-secret-keys 0x3662FD5Edicetak?
Jonas Schäfer
Tidak, tidak. Apakah ada cara saya bisa menambahkannya?
Bagaimana Anda mendapatkan kunci pribadi?
Jonas Schäfer
Apa yang sebenarnya mewakili ID ini?
Nishant

Jawaban:

17

Saya sudah memiliki kunci pribadi yang dengannya file telah dienkripsi, tetapi saya tidak yakin bagaimana saya bisa menentukannya.

Saya memahami ini sebagai "Saya punya file yang berisi kunci pribadi, tetapi tidak tahu bagaimana cara memberitahu GnuPG untuk menggunakannya".

GnuPG membutuhkan kunci (baik publik maupun pribadi) untuk disimpan dalam kunci GnuPG. Ini semudah

gpg --import [keyfile]

Setelah itu, Anda harus dapat mendekripsi file persis seperti yang sudah Anda coba.

Jens Erat
sumber
5
Jadi, apakah gpg cukup pintar untuk mengetahui kunci mana yang harus didekripsi setelah Anda memiliki beberapa kunci yang diimpor?
RollRoll
Iya. Biasanya kunci bahkan direferensikan dalam file terenkripsi, jika tidak GnuPG mencoba semua kunci.
Jens Erat
Saya menggunakan GnuPG secara terprogram dan memiliki keyring dengan ratusan kunci pribadi dan pesan dapat dienkripsi dengan lusinannya. Tampaknya agak boros bahwa itu hanya mencoba semuanya (sebenarnya ia mencoba untuk membuka kunci mereka semua menggunakan frasa sandi yang diberikan dan mengambil yang pertama yang berfungsi).
jlh
2
GnuPG hanya mencoba semuanya jika kunci disembunyikan oleh pihak pengirim. Rasanya case use Anda bukan salah satu target desain GnuPG. Jika Anda mengetahui kunci pribadi yang benar meskipun tidak disimpan dalam file terenkripsi, pertimbangkan untuk mengelola direktori home / keyrings GnuPG yang berbeda dengan satu kunci privat.
Jens Erat
Ya, sepertinya case use saya tidak cocok untuk gpg. Untuk kelengkapan, berikut ini pengamatan yang lebih rinci: ID penerima saya tidak disembunyikan (tidak menggunakan -R), jadi gpg tahu yang mana dari selusin kunci yang harus dicoba, itu tidak harus mencoba seluruh keyring. Namun gpg tidak tahu kunci mana yang saya berikan frasa sandi, jadi ia harus mencoba selusin kunci itu, yang memperlambat banyak hal.
jlh
6
bash-4.2$ gpg --import b_secret.key
gpg: key 23E7859B: already in secret keyring
gpg: Total number processed: 1
gpg:       secret keys read: 1
gpg:  secret keys unchanged: 1
bash-4.2$ gpg --decrypt b_txt.asc
gpg: key 23E7859B: secret key without public key - skipped
gpg: encrypted with RSA key, ID 04702E37
gpg: decryption failed: secret key not available
anshul
sumber
3
Selamat datang di SuperUser, saran Anda sudah ada di jawaban lain. Anda harus memilih jawaban itu alih-alih membuat yang baru. Anda belum memiliki reputasi yang cukup untuk melakukan itu, tunggu sampai Anda melakukannya.
Vlastimil Ovčáčík
2

Anda tidak perlu secara tegas mendeklarasikan kunci rahasia dalam perintah dekripsi gpg. Jika keypair- kedua Public DAN Swasta tombol-sebagai negara Jens hadir pada keyring pada host mana Anda mendekripsi, GPG otomatis akan menentukan kunci rahasia yang diperlukan untuk dekripsi dan menyajikan tantangan password.

NAMUN jika Anda ingin mencoba semua kunci (tidak di-cache) ( mungkin Anda sedang menguji file yang dienkripsi dengan beberapa kunci ), menggunakan saklar --try-all-secretsakan menggilir semua kunci rahasia pada kunci Anda dan mencobanya secara bergantian. yaitu:

gpg -d --try-all-secrets test-gpg.txt.asc

HTH- Terrence

F1Linux
sumber