क्यों gpg परेशान हो रहा है और मैं इसे कैसे रोकूं?


24

मैंने हाल ही में उबंटू की एक स्थापना से दूसरे में माइग्रेट किया, और इस प्रक्रिया में मेरा उपयोगकर्ता नाम बदल दिया। मैंने अपनी सार्वजनिक / निजी कुंजी जोड़ी को gpg में आयात किया, और डिक्रिप्शन करते समय (मेरी निजी कुंजी का उपयोग करते हुए) ठीक काम करता है, जब भी मैं अपनी सार्वजनिक कुंजी के साथ खुद को कुछ एन्क्रिप्ट करने का प्रयास करता हूं तो मुझे निम्न चेतावनी संदेश मिलता है:

It is NOT certain that the key belongs to the person named
in the user ID.  If you *really* know what you are doing,
you may answer the next question with yes.

उसके बाद यह मुझसे पूछता है कि क्या मैं वास्तव में कुंजी का उपयोग करना चाहता हूं (मैं हमेशा "हां" का जवाब देता हूं, क्योंकि यह वास्तव में मेरे कीरिंग में एकमात्र कुंजी है और मुझे पता है कि यह कहां से आया है)। मैं सामान को ठीक से डिक्रिप्ट कर सकता हूं, इसलिए जब भी मैं किसी चीज़ को एन्क्रिप्ट करने की कोशिश करता हूं, तो जीपीजी कैसे एक हिस्सी फिट को फेंक देता है? और मैं इस संदेश को फिर से प्रदर्शित होने से कैसे रोक सकता हूं?


इस पुराने सवाल का जवाब स्टैकओवरफ़्लो मदद में से किसी से भी करें ?: stackoverflow.com/q/9460140/2422988
पॉल

@Paul, हाँ, उस लिंक से थोड़ी मदद मिली। मैंने अपनी कुंजी के "ट्रस्ट" स्तर को अंतिम रूप दिया, और लगता है कि समस्या को ठीक कर लिया है। लेकिन समस्या क्या थी ? ऐसा क्यों हो रहा था, और क्या मैंने इसे ठीक किया या सिर्फ लक्षणों को कम किया?
चौदह

क्षमा करें InkBlend, मुझे डर है कि मैं खोज करने की कोशिश करूं और खोज परिणामों की तुलना इस मामले में pgp के अपने ज्ञान से अधिक करूं, इसलिए उत्तर के रूप में यह दावा करने का मेरा गैर-प्रयास है। ऐसा लगता है कि गैरेट जानता है कि क्या चल रहा है, हालांकि।
पॉल

जवाबों:


16

मैं उस समस्या को पुन: उत्पन्न करने में कामयाब रहा जो आप अनुभव कर रहे हैं। मैंने निम्न कार्य किया:

$ gpg --no-default-keyring --keyring ./test-keyring  --secret-keyring ./test-secring --trustdb-name ./test-trustdb --no-random-seed-file --gen-key

<specified parameters and let it do its thing>

gpg: key 58018BFE marked as ultimately trusted
public and secret key created and signed.

<snip>

$

ध्यान दें कि प्रक्रिया ने कुंजी को "अंततः विश्वसनीय" के रूप में चिह्नित किया है।

अब मैं कुंजी निर्यात करता हूं:

$gpg --no-default-keyring --keyring ./test-keyring  --secret-keyring ./test-secring --trustdb-name ./test-trustdb --no-random-seed-file --export-secret-keys -a >private.key

$gpg --no-default-keyring --keyring ./test-keyring  --secret-keyring ./test-secring --trustdb-name ./test-trustdb --no-random-seed-file --export -a > public.key

अब मैं एक नए gpg डेटाबेस में आयात करता हूं:

$gpg --no-default-keyring --keyring ./test2-keyring  --secret-keyring ./test2-secring --trustdb-name ./test2-trustdb --no-random-seed-file --import public.key

$gpg --no-default-keyring --keyring ./test2-keyring  --secret-keyring ./test2-secring --trustdb-name ./test2-trustdb --no-random-seed-file --import private.key

अब अगर मुझे मिलने वाली नई कुंजी का उपयोग कर एन्क्रिप्ट करने का प्रयास किया जाए:

$ gpg --no-default-keyring --keyring ./test2-keyring  --secret-keyring ./test2-secring --trustdb-name ./test2-trustdb --no-random-seed-file -r Fake -e
gpg: AE3034E1: There is no assurance this key belongs to the named user

pub  1024R/AE3034E1 2013-06-13 Fake User <fake@example.com>
 Primary key fingerprint: AD4D BAFB 3960 6F9D 47C1  23BE B2E1 67A6 5801 8BFE
      Subkey fingerprint: 58F2 3669 B8BD 1DFC 8B12  096F 5D19 AB91 AE30 34E1

It is NOT certain that the key belongs to the person named
in the user ID.  If you *really* know what you are doing,
you may answer the next question with yes.

इसका कारण "ट्रस्ट ऑफ वेब" मॉडल है। डिफ़ॉल्ट रूप से, सार्वजनिक कुंजी पर भरोसा करने के लिए, इसमें या तो 1 "अंतिम" विश्वास प्रमाण पत्र की आवश्यकता होती है (आमतौर पर जहां आपने व्यक्तिगत रूप से शामिल लोगों की पहचान सत्यापित की है), या 3 "सीमांत" विश्वास प्रमाण पत्र (जहां कोई व्यक्ति आपको जानता है,) कौन जानता है कि आप किसी को जानते हैं ... प्रमाण पत्र पर हस्ताक्षर किए हैं)।

क्योंकि gpg एक सुरक्षा अनुप्रयोग है, यह आपको चेतावनी देता है यदि आप एक कुंजी को एन्क्रिप्ट करने का प्रयास कर रहे हैं जिसे विश्वसनीय के रूप में सूचीबद्ध नहीं किया गया है। इस मामले में आपकी खुद की कुंजी पर भरोसा नहीं करने का कारण सरल है। ऐसा इसलिए है क्योंकि आपने पिछले gpg उदाहरण से विश्वास संबंधों को निर्यात नहीं किया था। ऐसा करने के लिए, --export-ownertrust और --import-ownertrust कमांड का उपयोग करें।

हमेशा की तरह, मैन पेज देखें ।


1
मुख्य बात यह है कि कुंजी ट्रस्ट के बारे में सभी डेटा कीरिंग (गुप्त और सार्वजनिक दोनों) से अलग-अलग संग्रहीत किए जाते हैं! ~/.gnupg/trustdb.gpgट्रस्ट डेटाबेस, pubring.gpgसार्वजनिक कुंजी और secring.gpgगुप्त कुंजी रखती है । कृपया इस पर GnuPG दस्तावेज़ीकरण देखें ।
गर्टवदिजक

28

मैं एक ही मुद्दे में भाग गया, हालांकि अब मेरे पास पुरानी कुंजी तक पहुंच नहीं थी। तो आप इस के साथ अपनी पुरानी कुंजी पर विश्वास फिर से बना सकते हैं:

gpg --edit-key YOUR@KEY.ID
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

Your decision? 5
Do you really want to set this key to ultimate trust? (y/N) y

ओपी ने ऐसा किया है (टिप्पणियों में उल्लेख किया गया है), लेकिन अच्छा है कि इसे उत्तर के रूप में कहा जाए।
मूरू

7

आप --always-trustइस संदेश को छोड़ने के लिए ध्वज का उपयोग कर सकते हैं ।


1
यह बिल्कुल सच है, लेकिन यह सिर्फ लक्षणों को दूर कर रहा है, न कि बीमारी को। आपका समाधान एस्पिरिन लेने जैसा है क्योंकि आपको कैंसर हो गया है ...
Fabby

2
--always-trustकुछ मामलों में एक अच्छा समाधान है , लेकिन यदि प्रश्न में कुंजी वास्तव में उपयोगकर्ता की अपनी कुंजी है, तो इसे केवल अंतिम विश्वास दिया जाना चाहिए।
ब्लैकलाइट शाइनिंग

4
मेरी बीमारी GPG की जिद्दी जिद है जो मेरे प्रोग्रामेटिक फ़ाइल एन्क्रिप्शन को एक कीरिंग पर जोर देती है, और हर वीएम पर अलग-अलग तरीकों से ऐसा करने पर मैं सॉफ्टवेयर इंस्टॉल करता हूं।
बोजो

@BlacklightShining और अगर मैं अभी तक यह सत्यापित करने में सक्षम नहीं था, तो विकास उस पते पर मेल को एन्क्रिप्ट करने की अनुमति नहीं देता है। पता नहीं क्यों किसी को किसी पाठ को एन्क्रिप्ट करना पूर्ण विश्वास की आवश्यकता है - और सिर्फ सीमांत विश्वास के साथ संभव नहीं होना चाहिए।
इज़ी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.