GPG Dosyalarının Şifresini Çözmek İçin Özel / Gizli ASC Anahtarı Nasıl Verilir


89

Arka plan: Patronum bana genel ve özel parçalarla bir ASC anahtarı vermeyi denedi, ancak dosyayı her aldığımda özel bölüm asla yüklenmiyor ve hiçbir dosyanın şifresini çözmüyor.

Aşağıdakileri kullanarak ASC Anahtarını Dışa Aktarmayı denedik:

  • Windows Uygulaması Kleopatra 2.1 (gpg4win'e dahildir)
  • Windows Uygulaması GNU Privacy Assistant (gpg4win'e dahildir)

            Error: "Decryption failed. Secret Key Not available." 
    

Gpg dosyalarının şifresini çözmek için gizli veya özel bir asc anahtarını doğru şekilde nasıl dışa aktarırsınız?

Yanıtlar:


186

Özel anahtarı komut satırı aracıyla GPG'den dışa aktarabilirsiniz . Windows kabuğunda çalışır. Aşağıdaki komutu kullanın:

gpg --export-secret-keys

İle normal bir dışa aktarma --exportherhangi bir özel anahtar içermez, bu nedenle kullanmanız gerekir --export-secret-keys.

Düzenle:

Yorumlarımda verilen bilgileri özetlemek gerekirse, bu, 1234ABCD kimliğine sahip belirli bir anahtarı secret.asc dosyasına aktarmanıza izin veren komuttur:

gpg --export-secret-keys --armor 1234ABCD > secret.asc

İhtiyacınız olan kimliği aşağıdaki komutu kullanarak bulabilirsiniz. Kimlik, ikinci sütunun ikinci kısmıdır:

gpg --list-keys

Hepsi yerine yalnızca 1 belirli gizli anahtarı dışa aktarmak için:

gpg --export-secret-keys keyIDNumber > exportedKeyFilename.asc

keyIDNumber, dışa aktarmaya çalıştığınız istenen anahtarın anahtar kimliğinin numarasıdır.


4
@Brian: Bu, anahtarı konsola atacak. Bir dosyada saklamak istiyorsanız, çıktıyı rasgele bir dosya adına yeniden yönlendirebilirsiniz ("gpg - dışa aktar-gizli-anahtarlar> gizli.asc").
Demento

5
@Brian: Bu size ikili olarak değil ASCII'de çıktı verir. Bir dosyada saklarsanız, gerçekten önemli değil. Ancak, başka bir yoldan geçmek istediğinizde, ASCII sürümünün işlenmesi çok daha kolaydır (örneğin, bir e-postayla satır içi olarak göndermek)
Demento

8
Belki gizli anahtarınızı başka bir yere taşımak istersiniz. Bu durumda, dışa aktarılan verileri şifrelemelisiniz: "gpg --export-secret-keys keyIDNumber | gpg -c> şifreli" şifresini "gpg -o şifrelenmemiş şifreli" ile çözmelisiniz.
rockdaboot

3
GnuPG'den dışa aktarılan anahtarlar şifrelenmiş olarak kalır (bu nedenle özel anahtar parolasını girmenize gerek yoktur), bu nedenle yeniden şifrelemeye gerçekten gerek yoktur.
Ferry Boender

1
@FerryBoender Bundan emin misiniz ?
Josh Habdas

32

Yukarıdaki yanıtların tümü doğrudur, ancak önemli bir adım eksik olabilir, içe aktarılan anahtarı düzenlemeniz ve bu anahtara "nihayetinde güvenmeniz" gerekir

gpg --edit-key (keyIDNumber)
gpg> trust

Please decide how far you trust this user to correctly verify other users' keys
(by looking at passports, checking fingerprints from different sources, etc.)

  1 = I don't know or won't say
  2 = I do NOT trust
  3 = I trust marginally
  4 = I trust fully
  5 = I trust ultimately
  m = back to the main menu

ve içe aktarılan özel anahtarı anahtarlarınızdan biri olarak etkinleştirmek için 5'i seçin


18

Dark Otter'ın tedavisine bakın

https://montemazuma.wordpress.com/2010/03/01/moving-a-gpg-key-privately/

Site çalışmıyorsa archive.org yedeğine başvurun:

https://web.archive.org/web/20170518155052/https://montemazuma.wordpress.com/2010/03/01/moving-a-gpg-key-privately/

Anahtarları aktarmanın oldukça güvenli bir yolunu içerir. Bu öneriyi, tekrarlanan kullanım için aşağıda gösterilen kabuk komut dosyalarına koyabilirsiniz.

Öncelikle gösterilen listeden istediğiniz ANAHTAR KİMLİĞİNİ alın

$ gpg -K

Elde edilen listeden, aktarım için ihtiyaç duyduğunuz KEYID (saniyeyi takip eden 8 onaltılık sayı) not edin.

Daha sonra, ilk hesapta test edilen kabuk scipts "export_private_key" i canlandırın ve pubkey.gpg + keys.asc dosyanızı oluşturun. Daha sonra ikinci hesabı "import_private_key" üzerinde çağırın. Kedi ile gösterilen içerikleri (içeriği kopyalayıp yapıştırın):

$ cat export_private_key 
gpg -K
echo "select private key"
read KEYID
gpg --output pubkey.gpg --export $KEYID
echo REMEMBER THE COMING PASS-PHRASE
gpg --output - --export-secret-key $KEYID | \
   cat pubkey.gpg - | \
   gpg --armor --output keys.asc --symmetric --cipher-algo AES256
ls -l pubkey.gpg keys.asc
####################  E X P O R T _ P R I V A T E _ K E Y  #####################

Şimdi bazı yollarla "pubkey.gpg" (gerekirse) ve özel "keys.asc" yi ikinci hesaba aktarın ve aşağıda gösterilen programı kıskandırın.

$ cat import_private_key 
gpg --no-use-agent --output - keys.asc | gpg --import
###################  I M P O R T _ P R I V A T E _ K E Y  ######################

Otter'in ruhunda "Ve bu, öyle olmalı, bu".


Komut dosyasının, parola korumalı bir dosyaya hem genel hem de özel anahtarı eklediği için teşekkür ederiz. Hayatımı çok daha iyi hale getiriyor!
codekoala

Seçenek --no-use-agentgpg sürüm 2'de kullanılmıyor.
Josh Habdas

9

Mesaj hatası, gnupg'dan genel / özel anahtarı içe aktarmak için:

gpg --import mypub_key
gpg --allow-secret-key-import --import myprv_key

Çalışan bir bilgisayardan dışa aktarmayı soruyordum ... anahtarı yalnızca yerel bir sunucudaysa içe aktarabilirsiniz.
Brian McCarthy

@Brian McCarthy: Ne söylemeye çalışıyorsun?
SIFE

Özel olan zaten içe aktarılmışsa, genel anahtarı gerçekten içe aktarmamız gerekiyor mu? Anladığım kadarıyla, özel bir anahtar herhangi bir şeyden bir ortak anahtar oluşturulabilir.
farhany

@farhany Evet, çünkü mesajınızı imzalarken ihtiyacınız olacak.
SIFE

6

bu benim için işe yaradı:

   gpg -a --export-secret-keys > exportedKeyFilename.asc 

.asc uzantısında kaldığınız sürece keyfilename.asc'yi herhangi bir adla adlandırabilirsiniz.
bu komut, bir kullanıcının bilgisayarındaki tüm gizli anahtarları, komutun çağrıldığı çalışma dizinindeki anahtarilename.asc'ye kopyalar.

Hepsi yerine yalnızca 1 belirli gizli anahtarı dışa aktarmak için:

   gpg -a --export-secret-keys keyIDNumber > exportedKeyFilename.asc

keyIDNumber, dışa aktarmaya çalıştığınız istenen anahtarın anahtar kimliğinin numarasıdır.


1
Mevcut tüm anahtarları "--list-keys" ile listeleyebilirsiniz. İkinci sütun "2048g / 1234ABCD" gibi kimlikler içerecektir. İstenen anahtarı bulun ve "gpg --export-secret-keys 1234ABCD> secret.asc" ile dışarı aktarın, tabii ki 1234ABCD'yi doğru ID ile değiştirin. Ayrıca "-a" bayrağını da ekleyebilirsiniz. İkili çıkışın sorun yaratması ihtimaline karşı, çıktıyı ASCII karakterleriyle yazar.
Demento

@demento, teşekkür ek geri bildirim için ... hasta cevaba eklemek
Brian McCarthy

2
gerçekten
yükselmek

Daha sonra bunları başka bir bilgisayara nasıl aktarırsınız?
Natim

@Natim exportedKeyFilename.ascDiğer bilgisayara götürdüğünüzü ve ardından dosya gpg --allow-secret-key-import --import exportedKeyFilename.ascile dizinde yaptığınızı hayal ediyorum .asc. Bakınız: unix.stackexchange.com/questions/184947/…
Brōtsyorfuzthrāx

5

@ Wolfram J'nin cevabına benzer şekilde, işte özel anahtarınızı bir parola ile şifrelemek için bir yöntem :

gpg --output - --armor --export $KEYID | \
    gpg --output private_key.asc --armor --symmetric --cipher-algo AES256

Ve şifresini çözmek için karşılık gelen bir yöntem:

gpg private_key.asc

5

1. Bir Gizli Anahtarı Dışa Aktarın (patronunuzun sizin için yapması gereken şey budur)

gpg --export-secret-keys yourKeyName > privateKey.asc

2. Gizli Anahtarı İçe Aktar (privateKey'inizi içe aktarın)

gpg --import privateKey.asc

3. Henüz bitmedi, yine de nihayetinde bir anahtara güvenmeniz gerekiyor. Nihayetinde bir anahtara da güvendiğinizden emin olmanız gerekecektir.

gpg --edit-key yourKeyName

Trust, 5, y girin ve ardından çıkın

Kaynak: https://medium.com/@GalarnykMichael/public-key-asymmetric-cryptography-using-gpg-5a8d914c9bca

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.