GPG ไม่สามารถตรวจสอบลายเซ็นได้


10

ฉันพยายามคอมไพล์และสร้างแหล่ง libevent2 ใหม่จาก oneiric บนเซิร์ฟเวอร์ natty ของฉันและฉันมีข้อผิดพลาดเล็กน้อยกับ gpg ไม่สามารถตรวจสอบลายเซ็นได้

# dpkg-source -x libevent_2.0.12-stable-1.dsc
gpgv: Signature made Fri Jun 17 07:12:50 2011 PDT using DSA key ID 7ADF9466
gpgv: Can't check signature: public key not found
dpkg-source: warning: failed to verify signature on ./libevent_2.0.12-stable-1.dsc

มีความคิดวิธีแก้ไขคำเตือนนี้อย่างไร

คำตอบ:


10

ฉันเชื่อว่าโซลูชันทั่วไปคือการติดตั้งคีย์ GnuPG ของแพ็คเกจDebian Developers :

sudo apt-get install debian-keyring

ใช่คำสั่ง gpg ที่แนะนำที่นี่โดย @enzotib และ @Flint ไม่ได้ทำงานสำหรับฉันในอูบุนตู 14.04 apt-get sourceอย่างน้อยสำหรับการเปิดใช้งานการตรวจสอบเมื่อทำงาน แต่การติดตั้งdebian-keyringแพคเกจทำงานตามที่ @ ændrükแนะนำ
fjarlq

10

ก่อนอื่นคุณควรนำเข้ากุญแจไปที่ local key ตามคำแนะนำ @enzotib:

gpg --keyserver keyserver.ubuntu.com --recv-keys 7ADF9466

จากนั้นส่งออกคีย์ไปยังคีย์ที่ไว้วางใจในท้องถิ่นของคุณเพื่อทำให้มันเชื่อถือได้:

gpg --no-default-keyring -a --export 7ADF9466 | gpg --no-default-keyring --keyring ~/.gnupg/trustedkeys.gpg --import -

สิ่งนี้ใช้ได้ใน Ubuntu 16.04 ซึ่ง~/.gnupg/trustedkeys.gpgไม่มีอยู่จริง
Stéphane Gourichon

6

คุณควรนำเข้ากุญแจไปยัง local keyring ด้วยคำสั่งต่อไปนี้:

gpg --keyserver keyserver.ubuntu.com --recv-keys 7ADF9466

จากนั้นลองคำสั่งอีกครั้ง


1
ขอบคุณ แต่มันยังล้มเหลวในการตรวจสอบลายเซ็น
ฟลินท์

1
@Flint: คุณกำลังทำงานเป็น root ดังนั้นคำสั่งนี้ควรจะทำงานเป็น root เพื่อไปที่รูทริง คุณทำเช่นนั้น?
enzotib

5
มีแหล่งข้อมูลอย่างเป็นทางการใด ๆ ที่ระบุว่าวิธีนี้ปลอดภัยหรือไม่? ฉันจะรู้ได้อย่างไรว่า7ADF9466นี่เป็นกุญแจเซ็นชื่อที่ถูกต้องหากไม่มีอยู่ในแพ็คเกจพวงกุญแจ สิ่งที่ป้องกันไม่ให้คนที่อยู่ตรงกลางไม่สามารถให้บริการdscไฟล์ที่เซ็นชื่อด้วยคีย์อื่น (อาจเป็นแม้แต่คีย์ที่แตกต่างที่มีแฮช 32 บิตเดียวกัน)
kasperd
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.