ฉันจะข้าม / เพิกเฉยการตรวจสอบลายเซ็น gpg ของ apt ได้อย่างไร


47

คีย์ - เซิร์ฟเวอร์ที่ฉันเข้าชมทั้งหมดหมดเวลาแล้ว ฉันต้องติดตั้งแพคเกจโดยไม่ตรวจสอบลายเซ็นของกุญแจสาธารณะ มีวิธีการข้ามการตรวจสอบลายเซ็นทั้งหมด / ละเว้นข้อผิดพลาดของลายเซ็นทั้งหมดหรือไม่ก็ฉลาดที่จะคิดว่าลายเซ็นที่ส่งผ่าน?

ฉันรู้ดีว่าการทำเช่นนี้เป็นอันตราย


1
โดยปกติคุณจะต้องติดตั้งกุญแจแบบโลคัลในเวลาเดียวกันกับที่คุณเพิ่มที่เก็บดังนั้นทำไมคุณต้องเข้าถึงกุญแจเซิร์ฟเวอร์?
JanC

คำตอบ:


68

ผ่าน--allow-unauthenticatedตัวเลือกไปapt-getที่ใน:

sudo apt-get --allow-unauthenticated upgrade

จากหน้าคู่มือของapt-get:

- ไม่ผ่านการตรวจสอบความถูกต้องไม่ต้อง
สนใจหากแพ็กเกจไม่สามารถตรวจสอบความถูกต้องและไม่แสดงพร้อมท์ สิ่งนี้มีประโยชน์สำหรับเครื่องมือเช่น pbuilder รายการการกำหนดค่า: APT :: Get :: AllowUnauthenticated

คุณสามารถทำให้การตั้งค่านี้ถาวรโดยใช้ไฟล์ปรับแต่งของคุณเองที่/etc/apt/apt.conf.d/dir ชื่อไฟล์สามารถเป็นได้99myownและอาจมีบรรทัดนี้:

APT::Get::AllowUnauthenticated "true";

ด้วยวิธีนี้คุณไม่จำเป็นต้องใช้ตัวเลือกทุกครั้งที่คุณต้องการติดตั้งซอฟต์แวร์ หมายเหตุ: ฉันไม่แนะนำให้ตั้งค่าตัวเลือกนี้ตามค่าเริ่มต้นมันจะข้ามการตรวจสอบลายเซ็นที่อาจทำให้ฝ่ายตรงข้ามโจมตีคอมพิวเตอร์ของคุณได้


4
สำหรับข้อมูล: ใช้งานapt-getได้ แต่ไม่ได้ใช้กับaptคำสั่งธรรมดา
Tor Klingberg

2
Ubuntu 16.0 LTS สิ่งนี้ไม่ทำงาน / ไม่มีผลกับสิ่งใดเลย
wvxvw

7

หากคุณพยายามรับแพคเกจจากที่เก็บซึ่งบรรจุกุญแจไว้และรวมไว้ในที่เก็บและไม่มีที่อื่นมันน่ารำคาญมากที่จะดาวน์โหลดและติดตั้งแพ็คเกจ / คีย์แพคเกจโดยใช้ dpkg และยากมากที่จะทำเช่นนั้น ในลักษณะที่สามารถสคริปต์และทำซ้ำได้อย่างง่ายดาย

ไม่แนะนำให้ใช้สคริปต์ด้านล่างนี้หากคุณสามารถติดตั้งคีย์จาก keyserver หรือดาวน์โหลดจากแหล่งที่เชื่อถือได้ผ่านทาง 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 ใน repo 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แก้ไขได้! ขอบคุณมาก!
Benedikt Köppel

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-coder 's ความคิดเห็น


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 ด้วย

โปรดทราบว่ามันไม่ปลอดภัยโดยสิ้นเชิง


ถ้ามันไม่ปลอดภัยผมขอแนะนำให้คุณอย่าโพสต์เลย
Yufenyuy Veyeh Dider

วิธีที่ปลอดภัยในการทำเช่นนี้คือการอัพเกรด distro ในบางกรณีลูกค้าที่ซับซ้อนคุณไม่มีวิธีอัปเกรด และเนื่องจากคำถามทั้งหมดเริ่มต้นด้วยข้อความปฏิเสธความรับผิดชอบนี้: 'ฉันตระหนักดีว่าการทำเช่นนี้เป็นสิ่งที่อันตราย' ฉันคิดว่าการบริจาคของฉันเหมาะสมแล้ว ถ้าไม่ฉันสามารถลบออกได้
Gnusam
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.