GnuPG kullanarak bir dosyanın şifresini çözerken özel anahtar nasıl belirtilir?


22

GnuPG ile bir dosyanın şifresini çözmek çalışıyorum, ancak aşağıdaki komutu kullanırken:

gpg --decrypt filename.gpg

Aşağıdaki mesajı alıyorum:

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

Zaten dosyanın şifrelenmiş olduğu özel anahtara sahibim, ancak bunu nasıl belirleyebileceğimden emin değilim. Bu anahtara işaret etmek için şifre çözme yaparken ekleyebileceğim herhangi bir seçenek var mı?


1
Ne gpg --list-secret-keys 0x3662FD5Eyazdırıyor?
Jonas Schäfer

Hayır. Ekleyebilmemin herhangi bir yolu var mı?

Özel anahtarı nasıl edindiniz?
Jonas Schäfer

Bu kimlik aslında neyi temsil ediyor?
Nishant

Yanıtlar:


17

Zaten dosyanın şifrelenmiş olduğu özel anahtara sahibim, ancak bunu nasıl belirleyebileceğimden emin değilim.

Bunu "Özel anahtarı içeren bir dosyam var, ancak GnuPG'ye bunu nasıl kullanacağını bilmiyorum" olarak anlıyorum.

GnuPG, anahtarların (hem genel hem de özel) GnuPG anahtarlığında saklanmasını gerektirir. Bu kadar kolay

gpg --import [keyfile]

Daha sonra, dosyanın tam olarak denediğiniz şekilde şifresini çözebilmeniz gerekir.


5
Peki gpg birkaç anahtarı içeri aktardıktan sonra hangi anahtarın şifresini çözeceğini bilecek kadar akıllı mı?
RollRoll

Evet. GnuPG değilse tüm anahtarları denerse, genellikle anahtar şifrelenmiş dosyada bile başvurulur.
Jens Erat

GnuPG'yi programlı olarak kullanıyorum ve yüzlerce özel anahtar içeren bir anahtarlığa sahibim ve mesaj onlarca ile şifrelenebilir. Sadece hepsini denemek biraz savurgan görünüyor (aslında verilen parolayı kullanarak hepsinin kilidini açmaya çalışıyor ve çalışan ilkini alıyor).
jlh

2
GnuPG hepsini yalnızca anahtar gönderen taraf tarafından gizlenmişse dener. Kullanım durumunuzun GnuPG'nin tasarım hedeflerinden biri olmadığını düşünüyor. Şifrelenmiş dosyada saklanmamış olmasına rağmen doğru özel anahtarı biliyorsanız, bunun yerine tek bir özel anahtarla farklı GnuPG giriş dizinlerini / anahtar dizilerini yönetmeyi düşünün.
Jens Erat

Evet, kullanım durumumun gpg için uygun olmadığı anlaşılıyor. Tamlık için daha ayrıntılı bir gözlem var: Alıcı kimliklerim gizli değil (-R kullanmıyor), bu yüzden gpg belki bir düzine anahtardan hangisini denemesi gerektiğini bilir, tüm anahtarlığı denemek zorunda değildir. Ancak gpg parolayı hangi anahtar için sağladığımı bilmiyor, bu yüzden şeyleri önemli ölçüde yavaşlatan bu düzine anahtarı denemek zorunda.
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

3
SuperUser'a hoş geldiniz, öneriniz zaten başka bir cevapta. Yeni bir cevap vermek yerine bu cevabı iptal etmelisiniz. Henüz bunu yapmak için yeterli bir üne sahip değilsiniz.
Vlastimil Ovčáčík

2

Gizli anahtarı gpg şifre çözme komutunda açıkça belirtmeniz gerekmez. Keypair- Kamu hem Eğer VE Jens devletler gibi özel tuşları-sen şifresini ediyoruz ana bilgisayarda anahtarlık mevcut, GPG automagicallylar şifre çözme için gerekli olan gizli anahtar belirlemek ve bir şifre meydan sunacak.

Ancak , tüm (önbelleğe alınmamış) anahtarları denemek istiyorsanız ( belki birden fazla anahtarla şifrelenmiş bir dosyayı test ediyorsanız ), anahtarı kullanmak anahtarlarınızı anahtar anahtarınızdaki --try-all-secretstüm gizli anahtarlar arasında dener. yani:

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

HTH- Terrence

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.