คีย์ - เซิร์ฟเวอร์ที่ฉันเข้าชมทั้งหมดหมดเวลาแล้ว ฉันต้องติดตั้งแพคเกจโดยไม่ตรวจสอบลายเซ็นของกุญแจสาธารณะ มีวิธีการข้ามการตรวจสอบลายเซ็นทั้งหมด / ละเว้นข้อผิดพลาดของลายเซ็นทั้งหมดหรือไม่ก็ฉลาดที่จะคิดว่าลายเซ็นที่ส่งผ่าน?
คีย์ - เซิร์ฟเวอร์ที่ฉันเข้าชมทั้งหมดหมดเวลาแล้ว ฉันต้องติดตั้งแพคเกจโดยไม่ตรวจสอบลายเซ็นของกุญแจสาธารณะ มีวิธีการข้ามการตรวจสอบลายเซ็นทั้งหมด / ละเว้นข้อผิดพลาดของลายเซ็นทั้งหมดหรือไม่ก็ฉลาดที่จะคิดว่าลายเซ็นที่ส่งผ่าน?
คำตอบ:
ผ่าน--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";
ด้วยวิธีนี้คุณไม่จำเป็นต้องใช้ตัวเลือกทุกครั้งที่คุณต้องการติดตั้งซอฟต์แวร์ หมายเหตุ: ฉันไม่แนะนำให้ตั้งค่าตัวเลือกนี้ตามค่าเริ่มต้นมันจะข้ามการตรวจสอบลายเซ็นที่อาจทำให้ฝ่ายตรงข้ามโจมตีคอมพิวเตอร์ของคุณได้
apt-get
ได้ แต่ไม่ได้ใช้กับapt
คำสั่งธรรมดา
หากคุณพยายามรับแพคเกจจากที่เก็บซึ่งบรรจุกุญแจไว้และรวมไว้ในที่เก็บและไม่มีที่อื่นมันน่ารำคาญมากที่จะดาวน์โหลดและติดตั้งแพ็คเกจ / คีย์แพคเกจโดยใช้ 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
และหลีกเลี่ยงการทั้งหมดที่ยุ่งยากแพคเกจพิเศษ
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E3CA1A89941C42E6
แก้ไขได้! ขอบคุณมาก!
สร้าง/etc/apt/apt.conf.d/99allow_unauth
ด้วยเนื้อหานี้:
APT { Get { AllowUnauthenticated "1"; }; };
ฉันพบปัญหาเดียวกันกับเซิร์ฟเวอร์เดเบียนเก่า ฉันไม่สามารถทำกิจกรรมได้
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 ด้วย
โปรดทราบว่ามันไม่ปลอดภัยโดยสิ้นเชิง