วิธีแก้ไขข้อผิดพลาด GPG: ไม่สามารถตรวจสอบลายเซ็นต่อไปนี้ได้ใน Ubuntu
แก้ไขข้อผิดพลาดลายเซ็น APT ของ Ubuntu อย่างปลอดภัย ระบุปัญหา NO_PUBKEY, EXPKEYSIG, BADSIG, นาฬิกา และการกำหนดค่าที่เก็บโดยไม่ต้องปิดใช้งานการตรวจสอบแพ็กเกจ
เริ่มต้นด้วยการระบุว่าที่เก็บข้อมูลใดที่ทำให้เกิดคำเตือน จากนั้นแก้ไขคีย์หรือการกำหนดค่าของที่เก็บข้อมูลนั้น อย่าปิดใช้งานการตรวจสอบลายเซ็น APTข้อความ "ไม่สามารถตรวจสอบลายเซ็นต่อไปนี้ได้" หมายความว่า APT ไม่สามารถยืนยันได้ว่าข้อมูลเมตาของที่เก็บข้อมูลนั้นได้รับการลงนามโดยคีย์ที่เชื่อถือได้ จนกว่าจะมีการตรวจสอบลายเซ็น APT อาจปฏิเสธที่จะใช้แหล่งที่มานั้น การเพิ่มคีย์แบบสุ่มหรือการตั้งค่าแหล่งที่มาให้เชื่อถือได้อาจซ่อนคำเตือนได้ แต่จะเป็นการลบการป้องกันที่คำเตือนนั้นควรให้ไว้
ตัวอย่างเช่น สมมติว่าsudo apt updateมีรายงานข้อผิดพลาดNO_PUBKEYสำหรับคลังซอฟต์แวร์ของผู้ผลิตเบราว์เซอร์ ในขณะที่การอัปเดตบรรทัดในคลังซอฟต์แวร์ของ Ubuntu เองนั้นสำเร็จ วิธีแก้ไขที่น่าจะเป็นไปได้คือการติดตั้งคีย์ลงนามที่เผยแพร่ล่าสุดของบริษัทผู้ผลิตนั้น และกำหนดขอบเขตการใช้งานให้เฉพาะกับคลังซอฟต์แวร์นั้น การติดตั้งคีย์ริงของคลังซอฟต์แวร์ของ Ubuntu ใหม่จะไม่สามารถแก้ปัญหาคีย์ของบุคคลที่สามได้ คำสั่งด้านล่างเป็นเพียงแม่แบบ: โปรดแทนที่รายละเอียดคลังซอฟต์แวร์ตัวอย่างด้วยค่าจากคำแนะนำอย่างเป็นทางการของผู้เผยแพร่ซอฟต์แวร์
เรียกใช้คำสั่งอัปเดตและจดบันทึก URL ของที่เก็บข้อมูลและรหัสข้อผิดพลาดในบรรทัดผลลัพธ์เดียวกัน:
sudo apt update
โดยปกติ APT จะระบุแหล่งที่มาโดยใช้ URL และชุดรุ่น เช่นnobleหรือjammyหากมีการกำหนดค่าแหล่งที่มามากกว่าหนึ่งแหล่ง อาจแสดงข้อผิดพลาดหลายรายการ ตรวจสอบให้แน่ใจว่าแต่ละข้อความตรงกับที่เก็บข้อมูลของตนเองก่อนทำการเปลี่ยนแปลง รูปแบบข้อผิดพลาดทั่วไปเหล่านี้ชี้ไปที่สาเหตุต่างๆ กัน:
| ข้อความหรือเบาะแส | ความหมายที่เป็นไปได้ | การดำเนินการครั้งแรก |
|---|---|---|
NO_PUBKEY | คีย์ลงนามสาธารณะที่จำเป็นสำหรับที่เก็บข้อมูลนั้นไม่พร้อมใช้งานสำหรับ APT หรือแหล่งที่มาไม่ได้ชี้ไปยังไฟล์คีย์ | ระบุเจ้าของคลังเก็บข้อมูลและรับคีย์ปัจจุบันจากคำแนะนำอย่างเป็นทางการของผู้เผยแพร่ |
EXPKEYSIG | คีย์ที่ใช้ในการลงลายเซ็นหมดอายุแล้ว หรือการตั้งค่าการลงลายเซ็นของที่เก็บข้อมูลจำเป็นต้องได้รับการอัปเดต | ตรวจสอบประกาศการหมุนเวียนคีย์ล่าสุดจากผู้เผยแพร่ อย่าติดตั้งคีย์ที่หมดอายุซ้ำๆ |
BADSIG | ลายเซ็นไม่ตรงกับข้อมูลเมตาที่ APT ได้รับ อาจเกิดจากเซิร์ฟเวอร์สำรองที่ล้าสมัย พร็อกซี การดาวน์โหลดไม่สมบูรณ์ หรือปัญหาฝั่งที่เก็บข้อมูล | ลองใหม่อีกครั้งหลังจากตรวจสอบแหล่งที่มา เส้นทางเครือข่าย และไฟล์ดัชนีที่แคชไว้แล้ว |
Release file is not valid yetหรือข้อความบอกเวลาที่คล้ายคลึงกัน | นาฬิการะบบอาจช้ากว่าเวลาที่บันทึกไว้ในที่เก็บข้อมูล | ตรวจสอบวันที่ในระบบ เขตเวลา และการซิงโครไนซ์เวลา |
| มีคีย์อยู่ แต่แหล่งข้อมูลยังคงรายงานว่าไม่รู้จักคีย์ | แหล่งที่มาอาจอ้างอิงถึงคีย์ริงที่แตกต่างกัน เส้นทางที่ไม่ถูกต้อง หรือไฟล์คีย์ที่ไม่สามารถอ่านได้โดย APT | Signed-Byตรวจสอบ การตั้งค่าและสิทธิ์การเข้าถึงคีย์ริงของแหล่งที่มา |
ลายเซ็นและข้อมูลเมตาของที่เก็บข้อมูลมีระยะเวลาใช้งาน เซิร์ฟเวอร์ที่กู้คืนจากสแนปช็อตเก่า คอมพิวเตอร์แบบบูตคู่ หรือเครื่องที่มีบริการเวลาล้มเหลว อาจมีนาฬิกาที่คลาดเคลื่อนมากพอที่จะทำให้ข้อมูลเมตาปัจจุบันดูเหมือนไม่ถูกต้อง ตรวจสอบเวลาของระบบ:
timedatectl status
ตรวจสอบให้แน่ใจว่าวันที่และเวลาที่แสดงถูกต้อง และการซิงโครไนซ์เวลาทำงานอยู่ หากนาฬิกาไม่ถูกต้อง ให้แก้ไขบริการเวลาของโฮสต์ หรือเปิดใช้งานวิธีการซิงโครไนซ์เวลาเครือข่ายที่กำหนดค่าไว้ แล้วลองใหม่อีกครั้งsudo apt updateหลีกเลี่ยงการตั้งค่าวันที่โดยประมาณด้วยตนเอง: นาฬิกาควรแสดงเวลาจริง การแก้ไขเวลาจะไม่สามารถแก้ไขคีย์ที่เก็บข้อมูลที่หายไปหรือหมดอายุได้ ดังนั้นหากข้อความยังคงเป็นNO_PUBKEYข้อEXPKEYSIGผิดพลาด ให้ดำเนินการตามขั้นตอนคีย์ที่เกี่ยวข้องต่อไป
คำแนะนำปัจจุบันของ Ubuntu แนะนำให้จัดเก็บคีย์ของบุคคลที่สามไว้ในคีย์ริงเฉพาะ และอ้างอิงคีย์นั้นจากแหล่งที่มาที่ตรงกันด้วย `<key>` Signed-Byซึ่งจะจำกัดว่าคีย์ใดบ้างที่สามารถใช้ตรวจสอบความถูกต้องของที่เก็บข้อมูลนั้นได้ Ubuntu อธิบายวิธีการนี้ไว้ในคู่มือที่เก็บข้อมูลของบุคคลที่สามและเอกสาร APT อธิบายวิธีSigned-Byการตรวจสอบขอบเขตในคู่มือ `<sources.list >`
แสดงรายการในคลังเก็บข้อมูลและค้นหาโฮสต์ที่แสดงในผลลัพธ์ของ APT:
grep -RniE '^[[:space:]]*(deb|URIs:)' /etc/apt/sources.list /etc/apt/sources.list.d/ 2>/dev/null
Ubuntu 24.04 และเวอร์ชันที่ใหม่กว่ามักใช้ไฟล์ deb822 ที่ลงท้ายด้วย.sources. ; เวอร์ชันเก่ากว่ามักใช้ไฟล์บรรทัดเดียวที่ลงท้ายด้วย.list. เอกสารการจัดการแพ็กเกจของ Ubuntuอธิบายรูปแบบซอร์สโค้ดเหล่านี้ไว้แล้ว ห้ามแก้ไขรายการเก็บถาวรของ Ubuntu เพื่อซ่อมแซมที่เก็บของผู้จำหน่ายที่ไม่เกี่ยวข้อง
เปิดหน้าการตั้งค่าคลังซอฟต์แวร์อย่างเป็นทางการของผู้พัฒนา และตรวจสอบให้แน่ใจว่าได้ระบุ URL ของคลังซอฟต์แวร์ เวอร์ชัน Ubuntu ที่รองรับ ตำแหน่งดาวน์โหลดคีย์ลงนาม และลายนิ้วมือของคีย์แบบเต็ม ดาวน์โหลดคีย์จากแหล่งที่ผู้พัฒนากำหนดเท่านั้น เปรียบเทียบลายนิ้วมือแบบเต็ม ไม่ใช่เพียงรหัสเลขฐานสิบหกแบบย่อที่แสดงหลังจากนั้นNO_PUBKEYคู่มือความปลอดภัยของ APT เน้นย้ำถึงการขอรับคีย์ผ่านช่องทางที่เชื่อถือได้ การเชื่อถือคีย์ที่ไม่ถูกต้องจะบั่นทอนการตรวจสอบคลังซอฟต์แวร์
ตัวอย่างต่อไปนี้ใช้คีย์ที่เข้ารหัสแบบ ASCII โปรดแทนที่ URL และชื่อไฟล์ในตัวอย่างด้วยค่าอย่างเป็นทางการจากผู้เผยแพร่:
curl -fsSLo /tmp/vendor-archive.asc https://packages.vendor.example/ubuntu/archive-key.asc
gpg --show-keys --with-fingerprint /tmp/vendor-archive.asc
ดำเนินการต่อเฉพาะเมื่อลายนิ้วมือที่แสดงตรงกับลายนิ้วมือที่ผู้เผยแพร่ระบุไว้เท่านั้น แปลงเป็นคีย์ริงไบนารีแล้ววางไว้ในไดเร็กทอรีคีย์ริงภายในเครื่องของ APT:
sudo install -d -m 0755 /etc/apt/keyrings
gpg --dearmor --output /tmp/vendor-archive.gpg /tmp/vendor-archive.asc
sudo install -m 0644 /tmp/vendor-archive.gpg /etc/apt/keyrings/vendor-archive-keyring.gpg
โดเมนตัวอย่างนี้เป็นเพียงภาพประกอบและจะไม่ดาวน์โหลดคีย์ของผู้จำหน่ายจริง โปรดใช้ URL คีย์ที่ได้รับการยืนยันอย่างถูกต้องซึ่งได้รับจากผู้เผยแพร่ซอฟต์แวร์ตัวจริง อย่าใช้ผลการค้นหาจากเซิร์ฟเวอร์คีย์แทนการยืนยันความเป็นเจ้าของคีย์
สำหรับการป้อนข้อมูลแบบบรรทัดเดียว.listรูปแบบจะเป็นดังนี้:
deb [signed-by=/etc/apt/keyrings/vendor-archive-keyring.gpg] https://packages.vendor.example/ubuntu noble main
สำหรับไฟล์ deb822 .sourcesฟิลด์ที่เกี่ยวข้องจะมีลักษณะดังนี้:
Types: deb
URIs: https://packages.vendor.example/ubuntu
Suites: noble
Components: main
Signed-By: /etc/apt/keyrings/vendor-archive-keyring.gpg
นี่เป็นเพียงแม่แบบ ไม่ใช่รายการแหล่งที่มาที่ถูกต้องเสมอไป โปรดคง URI, ชุด และส่วนประกอบต่างๆ จากคำแนะนำการติดตั้งอย่างเป็นทางการของผู้จำหน่ายไว้ ชื่อรหัส Ubuntu ที่ไม่ถูกต้องอาจทำให้เกิดข้อขัดแย้งของแพ็กเกจได้ แม้ว่าคีย์จะถูกต้องก็ตาม ตรวจสอบให้แน่ใจว่าเส้นทางคีย์ริงตรงกับไฟล์ที่คุณติดตั้ง คีย์ริงต้องสามารถอ่านได้โดย_aptผู้ใช้ที่ไม่ได้รับสิทธิ์ของ APT ซึ่งเป็นเหตุผลที่ตัวอย่างติดตั้งด้วยโหมด0644. ลบหรือแก้ไขรายการที่ซ้ำกันสำหรับที่เก็บเดียวกัน เพื่อไม่ให้รายการเก่าที่ไม่มีขอบเขตยังคงสร้างคำเตือนต่อไป
คำสั่ง APT apt-keyนั้นล้าสมัยแล้วสำหรับการตั้งค่าที่เก็บข้อมูลทั่วไป หลีกเลี่ยงคำแนะนำที่เพิ่มคีย์ของบุคคลที่สามแบบทั่วโลกapt-key advหรือวางคีย์ของผู้จำหน่ายทุกรายไว้ในคีย์ริงที่เชื่อถือได้ร่วมกัน การSigned-Byกำหนดขอบเขตของรายการจะทำให้ความสัมพันธ์ด้านความเชื่อถือชัดเจนยิ่งขึ้น และลดผลกระทบจากการเชื่อถือคีย์ที่เก็บข้อมูลเพียงคีย์เดียว
ขั้นแรก ตรวจสอบให้แน่ใจว่าชุดที่เก็บแพ็กเกจตรงกับเวอร์ชัน Ubuntu ที่ติดตั้งไว้ และนาฬิการะบบถูกต้อง คีย์ลงนามไฟล์เก็บถาวรของ Ubuntu จะมาพร้อมกับubuntu-keyringแพ็กเกจ หากคีย์ริงที่ติดตั้งไว้เสียหายหรือล้าสมัย และ APT ยังคงสามารถดาวน์โหลดและตรวจสอบแพ็กเกจจากแหล่ง Ubuntu ที่กำหนดค่าไว้อย่างถูกต้องได้ ให้ติดตั้งใหม่โดยใช้คำสั่ง:
sudo apt install --reinstall ubuntu-keyring
จากนั้นลองรันsudo apt updateอีกครั้ง หากแหล่งที่มาที่ล้มเหลวเพียงอย่างเดียวคือไฟล์เก็บถาวรเวอร์ชันเก่าหรือเซิร์ฟเวอร์มิเรอร์ที่ให้ข้อมูลเมตาที่ไม่สอดคล้องกัน การติดตั้งคีย์ริงใหม่ก็อาจไม่ช่วย ตรวจสอบการสนับสนุนเวอร์ชันและการกำหนดค่าที่เก็บข้อมูลของ Ubuntu ก่อนเปลี่ยนคีย์ อย่าแทนที่คีย์เก็บถาวรของ Ubuntu ด้วยคีย์ที่ดาวน์โหลดจากเว็บไซต์ที่ไม่เกี่ยวข้อง หรือปิดใช้งานการตรวจสอบเพื่อบังคับให้อัปเดต
หาก APT รายงานว่าBADSIGหลังจากเกิดการขัดข้องของเครือข่ายชั่วคราวหรือมีปัญหาเกี่ยวกับมิเรอร์/พร็อกซี รายการแพ็กเกจที่แคชไว้ในเครื่องอาจไม่สมบูรณ์หรือไม่สอดคล้องกัน หลังจากตรวจสอบแล้วว่าแหล่งที่มาที่กำหนดค่าไว้นั้นถูกต้อง ให้ล้างเฉพาะไฟล์ดัชนี APT ที่แคชไว้ แล้วดึงข้อมูลมาใหม่อีกครั้ง:
sudo rm -rf /var/lib/apt/lists/*
sudo apt update
การดำเนินการนี้จะลบดัชนีของที่เก็บข้อมูลที่ดาวน์โหลดมา ไม่ใช่แพ็กเกจที่ติดตั้งแล้ว APT จะสร้างดัชนีขึ้นใหม่ในการอัปเดตครั้งถัดไป หากการดำเนินการนี้BADSIGกลับมาทำงานทันที ให้หยุดการล้างข้อมูลซ้ำๆ ตรวจสอบว่าพร็อกซีเครือข่าย เกตเวย์แคช หรือมิเรอร์กำลังเขียนทับหรือให้บริการเมตาเดตาที่ไม่ตรงกันหรือไม่ และตรวจสอบสถานะของที่เก็บข้อมูลกับผู้เผยแพร่ การลบดัชนีซ้ำๆ ไม่ได้แก้ไขลายเซ็นที่ที่เก็บข้อมูลเผยแพร่ไม่ถูกต้อง
เรียกใช้คำสั่งsudo apt updateอีกครั้งและตรวจสอบว่า repository ที่ได้รับผลกระทบทำงานเสร็จสมบูรณ์โดยไม่มี คำเตือน NO_PUBKEY, EXPKEYSIG, BADSIG, หรือคำเตือนการตรวจสอบลายเซ็น จากนั้นตรวจสอบแพ็กเกจจากแหล่งที่มานั้นด้วย คำสั่ง โดย apt-cache policy package-nameแทนที่ชื่อด้วยชื่อแพ็กเกจจริง ยืนยันว่าเวอร์ชันที่เลือกมาจาก repository ที่คาดหวังก่อนที่จะติดตั้งหรืออัปเกรด
อย่าใช้trusted=yes, allow-insecure=yes, --allow-unauthenticated, หรือตัวเลือกที่คล้ายกันเป็นการแก้ไขถาวร การตรวจสอบลายเซ็นของ APT จะตรวจสอบว่าเมตาเดตาของที่เก็บข้อมูลได้รับการลงนามโดยคีย์ที่คุณเลือกที่จะเชื่อถือ การปิดใช้งานหมายความว่า APT จะไม่สามารถทำการตรวจสอบความสมบูรณ์นั้นได้อีกต่อไปคู่มือความปลอดภัยของ APTอธิบายถึงห่วงโซ่การตรวจสอบความถูกต้องของที่เก็บถาวรและข้อจำกัดของมัน หากผู้เผยแพร่ได้ถอนที่เก็บข้อมูล หยุดลงนามเมตาเดตา หรือไม่ให้ลายนิ้วมือคีย์ที่ตรวจสอบได้ ให้ลบหรือปิดใช้งานแหล่งที่มานั้นแทนที่จะข้ามการตรวจสอบ
เอกสารนี้ได้รับการตรวจสอบเมื่อวันที่ 6 ตุลาคม 2569 รูปแบบของที่เก็บซอฟต์แวร์ Ubuntu และคำแนะนำเกี่ยวกับการจัดการคีย์อาจแตกต่างกันไปในแต่ละเวอร์ชัน โปรดใช้เอกสารประกอบของเวอร์ชัน Ubuntu ที่คุณติดตั้งและคำแนะนำล่าสุดจากผู้เผยแพร่ที่เก็บซอฟต์แวร์
แก้ไขข้อผิดพลาดลายเซ็น APT ของ Ubuntu อย่างปลอดภัย ระบุปัญหา NO_PUBKEY, EXPKEYSIG, BADSIG, นาฬิกา และการกำหนดค่าที่เก็บโดยไม่ต้องปิดใช้งานการตรวจสอบแพ็กเกจ
กำหนดค่า DM-Multipath บน SLES 15 ด้วยการค้นหาที่ปลอดภัย การตั้งค่าบริการ การเปลี่ยนแปลง multipath.conf น้อยที่สุด การอัปเดต initramfs และการตรวจสอบสถานะของเส้นทาง
กู้คืน SLES หลังจากการอัปเดตล้มเหลวด้วย Btrfs และ Snapper เปรียบเทียบตัวเลือกการย้อนกลับ ทดสอบสแนปช็อตอย่างปลอดภัย กู้คืนระบบ และตรวจสอบที่เก็บข้อมูล
ใช้ Liderahenk และ Ahenk เพื่อตั้งค่าภาพพื้นหลัง Pardus GNOME แบบกำหนดเอง ล็อกการตั้งค่าที่เลือกด้วย dconf และใช้งานนโยบายไคลเอ็นต์อื่นๆ ผ่านโครงการนำร่องที่ผ่านการทดสอบแล้ว
ตรวจสอบสาเหตุที่ Ubuntu Server เข้าสู่โหมดฉุกเฉิน ซ่อมแซมปัญหาทั่วไปของไฟล์ /etc/fstab และปัญหาการเมานต์อย่างปลอดภัย ตรวจสอบระบบไฟล์ และตรวจสอบการรีบูตตามปกติ
แก้ไขปัญหาแอป Flatpak ที่ไม่รองรับธีม GTK บน Ubuntu 24.04 ตรวจสอบส่วนขยายธีม พอร์ทัล GTK การตั้งค่าสว่างและมืด และข้อจำกัดของชุดเครื่องมือแอป
กำหนดค่า LIDER AHENK บน Pardus ด้วยการตั้งค่าที่เน้นคุณภาพ: ตรวจสอบข้อกำหนดเบื้องต้น ติดตั้ง Lider ลงทะเบียนไคลเอ็นต์ Ahenk และตรวจสอบความถูกต้องของการจัดการ
เปิดใช้งานไดรเวอร์ NVIDIA บน Pardus 23 ด้วยโปรแกรมติดตั้งไดรเวอร์ NVIDIA ของ Pardus ตรวจสอบความเข้ากันได้ของ GPU รีบูตอย่างปลอดภัย ตรวจสอบไดรเวอร์ และแก้ไขปัญหาทั่วไป
เปรียบเทียบการใช้งานดิสก์ หน่วยความจำ เวลาบูตเครื่อง บริการ และประสิทธิภาพการทำงานจริงของ Ubuntu Server 24.04 เวอร์ชัน Minimal และ Standard ด้วยวิธีการวัดผลที่สามารถทำซ้ำได้
แก้ไขข้อผิดพลาดการล็อกของ Zypper ใน SLES อย่างปลอดภัย ระบุโปรเซส เลือกว่าจะรอหรือหยุดโปรเซส และแยกความแตกต่างระหว่างการล็อกธุรกรรมกับการล็อกแพ็กเกจ