
當我下載更新或安裝新軟體時,我收到這些警告,提示我沒有公鑰。這只是有一天出現的,我沒有刪除/添加一些東西來創建它。
發布:由於公鑰不可用,無法驗證以下簽章:NO_PUBKEY 16126D3A3E5C1192
我已經嘗試過:sudo apt-key update
它對某些鍵有效,但其他鍵仍然丟失,我需要添加它們。
我需要幫助添加新密鑰和所有密鑰的地址。那些不在 Ubuntu 和啟動板中的。
答案1
取得鑰匙,第 1 部分
該程式addgpg-apt
- 這是我的 - 僅當密鑰位於 Ubuntu 密鑰伺服器上時才有效,除非您特別指定您嘗試從哪個密鑰伺服器獲取密鑰。它不會存取互聯網並查找 PGP 金鑰所在的金鑰伺服器。
sudo apt-get update | grep "NO_PUBKEY" | awk '{ system("addgpg-apt "$21) }'
將系統地檢查每一行輸出並將每個鍵傳送到addgpg-apt
程式。addgpg-apt
將嘗試從 Ubuntu 金鑰伺服器取得金鑰。
對於 ubuntu.com 或 launchpad.net 項目,它可以正常運作。對於其他 GPG 金鑰伺服器的金鑰,您需要在各自的金鑰伺服器中找到這些金鑰的位置,然後addgpg-apt
與--keyserver
每個金鑰一起使用:
addgpg-apt --keyserver <keyserver> <keyid>
然後,它將獲取密鑰並將它們放入您的 APT 密鑰環中。
該addgpg-apt
計劃是可透過 PPA 獲取
如果第一個命令失敗,試試這個:
sudo apt-get update | grep "NO_PUBKEY" | awk '{ print $21) }' | xargs addgpg-apt
這將執行與上面相同的操作,只是操作不同。
取得鑰匙,第 2 部分
我建議檢查網站上其他非 Ubuntu 和非 Launchpad 儲存庫的 PGP 金鑰,因為它們很可能會列在那裡。找到每一個後,您可以運行它addgpg-apt --keyserver <keyserver> <keyid>
,它將從這些儲存庫的密鑰伺服器下載。
答案2
嘗試這個:
sudo apt-key adv --recv-key --keyserver keyserver.ubuntu.com 16126D3A3E5C1192
其中「16126D3A3E5C1192」是失敗的密鑰
或者
sudo add-apt-repository ppa:nilarimogard/webupd8
sudo apt-get update
sudo apt-get install launchpad-getkeys
安裝後,要匯入 PPA 的所有缺少的 GPG 金鑰,只需使用以下命令:
sudo launchpad-getkeys