मैं apt के gpg हस्ताक्षर जांच को कैसे दरकिनार / अनदेखा करता हूँ?


47

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

मैं बहुत अच्छी तरह से जानता हूं कि ऐसा करना खतरनाक है


1
आम तौर पर आप स्थानीय रूप से उसी समय कुंजी को स्थापित करते हैं जब आप एक रिपॉजिटरी जोड़ते हैं, तो आपको कुंजी-सर्वर तक पहुंचने की आवश्यकता क्यों है?
JanC

जवाबों:


68

निम्न --allow-unauthenticatedविकल्प को पास करें apt-get:

sudo apt-get --allow-unauthenticated upgrade

के थाह मैनुअल पेज से apt-get:


यदि पैकेज को प्रमाणित नहीं किया जा सकता है और इसके बारे में संकेत नहीं दिया गया है तो - अस्वीकृत यह पाइलडर जैसे टूल के लिए उपयोगी है। कॉन्फ़िगरेशन आइटम: APT :: Get :: AllowUnauthenticated।

आप अपनी सेटिंग को /etc/apt/apt.conf.d/dir पर उपयोग करके इस सेटिंग को स्थायी बना सकते हैं । फ़ाइल नाम हो सकता है 99myownऔर इसमें यह रेखा हो सकती है:

APT::Get::AllowUnauthenticated "true";

इस तरह, आपको हर बार सॉफ़्टवेयर इंस्टॉल करने के लिए विकल्प का उपयोग करने की आवश्यकता नहीं होती है। नोट: मैं डिफ़ॉल्ट रूप से इस विकल्प को सेट करने की अनुशंसा नहीं करता, यह हस्ताक्षर जांच को दरकिनार करता है जो एक प्रतिकूल को आपके कंप्यूटर से समझौता करने की अनुमति दे सकता है।


4
जानकारी के लिए: यह काम करता है apt-getलेकिन सादे aptकमांड के साथ नहीं ।
Tor Klingberg

2
उबंटू 16.0 एलटीएस। यह किसी भी चीज पर शून्य प्रभाव नहीं करता है
wvxvw

7

यदि आप एक रिपॉजिटरी से एक पैकेज प्राप्त करने की कोशिश कर रहे हैं जहां उन्होंने कुंजियों को पैक किया है और उन्हें रिपॉजिटरी के भीतर शामिल किया है और कोई अन्य नहीं, तो यह dpkg का उपयोग करके कुंजी / कीरिंग पैकेज को डाउनलोड करने और स्थापित करने के लिए बहुत कष्टप्रद हो सकता है, और ऐसा करना बहुत मुश्किल है। आसानी से पटकथा और दोहराने योग्य तरीके से।

नीचे दी गई स्क्रिप्ट की अनुशंसा नहीं की जाती है, यदि आप कुंजी को एक पर्यवेक्षक से इंस्टॉल कर सकते हैं या उन्हें किसी विश्वसनीय स्रोत से https के माध्यम से डाउनलोड कर सकते हैं, लेकिन यदि आपके पास कोई अन्य तरीका नहीं है, तो आप इसका उपयोग कर सकते हैं।

echo "deb http://your.repo.domain/repository/ $(lsb_release -c -s) universe" | sudo tee /etc/apt/sources.list.d/your-repo-name.list

sudo apt -o Acquire::AllowInsecureRepositories=true \
-o Acquire::AllowDowngradeToInsecureRepositories=true \
update

## if the 'apt update' above fails it is likely due to previously
## having the GPG key and repository on the system, you can clean
## out the old lists with `sudo rm /var/lib/apt/lists/your.repo.domain*`

apt-get -o APT::Get::AllowUnauthenticated=true install repo-keyring-pkgname

## If you ever run `sudo apt-key del your-repos-keyID`
## you may have to `sudo apt remove --purge repo-keyring-pkgname`
## Update should run without the GPG warnings now that the key is installed

apt-get update
apt-get install somepkg-from-repo

मैंने मूल रूप से इसे एक साथ रखा क्योंकि i3 उनके sur5r रेपो में ऐसा करता है, लेकिन फिर मुझे पता चला कि उनकी चाबियाँ keyserver.ubuntu.com सूची में हैं, इसलिए मैं सिर्फ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E3CA1A89941C42E6और सभी अतिरिक्त पैकेज बाधाओं से बच सकती हूं ।


I3 मुद्दे की वजह से यहाँ आया - sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E3CA1A89941C42E6इसे हल किया! आपका बहुत बहुत धन्यवाद!
बेनेडिकट कोप्पेल

6

हो सकता है कि आप फ़ाइल /etc/apt/apt.conf बनाने की कोशिश कर सकते हैं (यदि आप इसे बनाते हैं तो इसे पढ़ा जाएगा) और यह कोड डालें:

APT{Ignore {"gpg-pubkey"; }};

5
यह मेरे लिए काम नहीं करता है। लेकिन काम करता है जब मैंने जोड़ाAPT { Get { AllowUnauthenticated "1"; }; };
php-coder

ubuntu 16.0 LTS: जो कुछ भी नहीं करता है उस पर कोई प्रभाव नहीं पड़ता है।
wvxvw

1

/etc/apt/apt.conf.d/99allow_unauthइस सामग्री के साथ बनाएँ :

APT { Get { AllowUnauthenticated "1"; }; };

Php- कोडर की टिप्पणी के लिए धन्यवाद ।


0

मैं एक पुराने डेबियन सर्वर के साथ एक ही समस्या में भाग गया। मैं इवेंट नहीं बना सका

apt-get update

जिसने मुझे निम्नलिखित त्रुटि दी:

E: Release file expired, ignoring http://archive.debian.org/debian/dists/squeeze-lts/Release (invalid since 1183d 0h 2min 51s)

अंत में समाधान यह जोड़ना था:

Acquire::Check-Valid-Until false;

/etc/apt/apt.conf पर (इसे तब बनाएँ जब यह मौजूद नहीं है)। इसके बाद, त्रुटि एक साधारण चेतावनी बन गई।

मुझे लगता है कि यह ubuntu पर भी काम कर सकता है।

कृपया ध्यान दें कि यह पूरी तरह से असुरक्षित है।


यदि यह असुरक्षित है, तो मेरा सुझाव है कि आप इसे बिल्कुल भी पोस्ट न करें।
युफेनीयु वेयेह डाइडर

ऐसा करने का सुरक्षित तरीका है डिस्ट्रो को अपग्रेड करना। कुछ जटिल ग्राहक मामलों में, आपके पास अपग्रेड करने का कोई तरीका नहीं है। और चूंकि पूरा प्रश्न इस अस्वीकरण के साथ शुरू किया गया है: 'मैं बहुत अच्छी तरह से अवगत हूं कि यह करना खतरनाक है' मुझे लगा कि मेरा योगदान स्वीकृत है। यदि नहीं, तो मैं इसे हटा सकता हूं।
ज्ञानसुम
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.