गुप्त gpg कुंजी आयात करने के लिए कैसे (एक मशीन से दूसरे में कॉपी किया गया)?


153

मैं एक मशीन से दूसरे में अपनी gpg कुंजी कॉपी करने की कोशिश कर रहा हूँ।

मैं करता हूँ:

gpg --export ${ID} > public.key
gpg --export-secret-key ${ID} > private.key

नई मशीन में फ़ाइल ले जाएँ, और फिर:

gpg --import public.key
gpg: nyckel [ID]: public key [Name, e-mail] was imported
gpg: Total number of treated keys: 1
gpg:                 imported: 1  (RSA: 1)

gpg --allow-secret-key-import private.key
sec  [?]/[ID] [Creation date] [Name, e-mail]
ssb  [?]/[SUB-ID] [Creation date]

सब मुझे अच्छा लगता है, लेकिन फिर:

$ gpg -d [file].gpg
gpg: encrypted with 4096-bit RSA-key, id [SUB-ID], created [Creation date]
  [Name, e-mail]
gpg: decryption failed: secret key not accessible

तो त्रुटि संदेश कहता है कि फ़ाइल को [SUB-ID] के साथ एन्क्रिप्ट किया गया है, जिसे गुप्त कुंजी आयात करने के लिए कहती है कि यह आयात किया गया है। (दोनों संदेशों में [SUB-ID] समान है)।

तो मैं स्पष्ट रूप से कुछ गलत कर रहा हूं, लेकिन मुझे नहीं पता कि क्या।

जवाबों:


164

--importनिजी कुंजी आयात करने के लिए आपको कमांड लाइन में जोड़ना होगा। आपको --allow-secret-key-importध्वज का उपयोग करने की आवश्यकता नहीं है । मैन पेज के अनुसार: "यह एक अप्रचलित विकल्प है और इसका कहीं भी उपयोग नहीं किया जाता है।"

gpg --import private.key

कोई भी मौका आपको यह भी पता होगा कि क्यों gpg2 -e -r [ID]कहते हैं "कोई आश्वासन नहीं है कि यह कुंजी नामित उपयोगकर्ता का है"? काश मैंने इसे मूल प्रश्न में शामिल किया होता, लेकिन मैंने इसे बाद में ही देखा।
user50849

1
GnuPG एक ट्रस्ट डेटाबेस रखता है जो यह तय करने के लिए उपयोग करता है कि किस कुंजी पर भरोसा करना है। उदाहरण के लिए, अपनी स्वयं की कुंजियों पर सबसे अधिक भरोसा करें, कुंजियाँ जो किसी भी विश्वसनीय कुंजी द्वारा प्रत्यक्ष या अप्रत्यक्ष रूप से हस्ताक्षरित नहीं हैं। आपके द्वारा सिर्फ एक खाली डेटाबेस में आयात किए जाने के बाद, शायद कोई भी कुंजी विश्वसनीय नहीं है। यह ट्रस्ट डेटाबेस डेटाबेस या कुंजियों से खुद को अलग करता है, इसलिए जब तक वे पहले से ही भरोसेमंद कुंजी द्वारा हस्ताक्षर नहीं किए जाते हैं, तब तक आयात करने वाली कुंजी उन पर भरोसा नहीं करती है। आपको GnuPG को रोकना होगा कि आप किन कुंजियों पर अलग से विश्वास करना चाहते हैं।
सेलाडा

3
@Celeda, धन्यवाद, --edit-key और विश्वास कमांड के साथ मैं कुंजी को विश्वसनीय बनाने में कामयाब रहा। चूँकि मेरा मूल प्रश्न यह था कि एक मशीन से दूसरी मशीन की चाबी को कैसे कॉपी किया जाए, मुझे लगता है कि आपके उत्तर के बारे में कुछ जोड़ना उचित होगा। मैं आपके उत्तर को स्वयं संपादित नहीं करना चाहूंगा, और आप मुझे इस बारे में और भी बहुत कुछ जान सकते हैं।
user50849

मुझे नहीं लगता कि मैं अपने जवाब में इस बारे में बात करने के लिए ट्रस्टडब को अच्छी तरह समझता हूं। मुझे खुशी है कि आपने अपनी टिप्पणी में मेरे द्वारा दिए गए अस्पष्ट संकेतों का उपयोग करते हुए इसे पूरा करने में सक्षम थे।
सेलडा

ठीक है, मैंने मूल प्रश्न को फिर से शीर्षक दिया है, इसलिए यह विशेष रूप से उत्तर के साथ फिट बैठता है। इस तरह मैं ट्रस्टडब पर एक अलग प्रश्न पूछ सकता हूं। सहायता के लिए धन्यवाद। :)
user50849

81

ऊपर केवल एक आंशिक उत्तर है। पूरा जवाब है:

gpg --import private.key
  • FA0339620046E260आउटपुट से KEYID (जैसे ) दिया गया:

    gpg --edit-key {KEY} trust quit
    # enter 5<RETURN>
    # enter y<RETURN>
    
  • या नीचे स्वचालित आदेश का उपयोग करें:

    expect -c "spawn gpg --edit-key {KEY} trust quit; send \"5\ry\r\"; expect eof"
    

अंत में, सत्यापित करें कि कुंजी अब के [ultimate]बजाय के साथ विश्वसनीय है[unknown]

gpg --list-keys

6
यह स्वीकृत उत्तर होना चाहिए। बहुत अधिक पूर्ण।
बेन लिंडसे

ये अतिरिक्त आदेश क्या करते हैं?
स्टिनी

@ शांति यह [अज्ञात] के बजाय [परम] के साथ कुंजी पर भरोसा करती है। gpgtools.tenderapp.com/kb/faq/…
cmcginty

0

मैं एक बैकअप से आयात कर रहा था जिसमें gpg का पुराना संस्करण था। चूंकि पुराना कंप्यूटर उपलब्ध नहीं था, केवल बैकअप, मैं इसे पहले निर्यात नहीं कर सका। इसी से मेरा काम बना है।

gpg --import old_home_dir/.gnupg/pubring.gpg
gpg --import old_home_dir/.gnupg/secring.gpg

यदि आप तुरंत पासफ़्रेज़ में प्रवेश किए बिना गुप्त कुंजी आयात करने में सक्षम होना चाहते हैं, तो --batchविकल्प का उपयोग करें ।

सार्वजनिक कुंजी को सत्यापित करने के लिए:

gpg --list-keys

गुप्त कुंजियों को सत्यापित करने के लिए:

gpg --list-secret-keys
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.