Làm cách nào để khắc phục lỗi GPG, NO NOUBUBKEY trực tiếp?


364

Tôi đã thêm một số kho lưu trữ bổ sung với chương trình Nguồn phần mềm. Nhưng khi tôi tải lại cơ sở dữ liệu gói, tôi gặp một lỗi như sau:

Lỗi W: GPG: http://ppa.launchpad.net InRelease đáng tin cậy: Không thể xác minh các chữ ký sau vì khóa công khai không có sẵn: NO_PUBKEY 8BAF9A6F

Tôi biết tôi có thể sửa nó bằng apt-keythiết bị đầu cuối, theo tài liệu chính thức của Ubuntu. Nhưng tôi muốn làm điều đó bằng đồ họa. Có cách nào để làm điều này mà không cần sử dụng một thiết bị đầu cuối?



"Một ý nghĩa"? Tò mò những gì bạn có ý nghĩa bởi điều đó.
Michael Scheper

1
Bạn có thể kiểm tra chủ đề SO này cho giải pháp. Liên kết đến trang web liên quan
Aniket Thakur

@MichaelScheper 'Có nghĩa là không mở thiết bị đầu cuối không?' = ~ 'Có cách nào để làm điều đó mà không cần thiết bị đầu cuối không?'
Wilf

@Wilf: Ồ! Tôi không có ý nói về ngữ pháp, nhưng nó làm tôi bối rối. Từ tài liệu tham khảo tôi vừa kiểm tra, 'nghĩa là' là một danh từ số ít, và ý bạn muốn nói. dictionary.cambridge.org/dipedia/english/means Nhưng nếu bạn và Agmentor đang sử dụng một số dạng biến thể của tiếng Anh trong đó ngữ pháp trong câu hỏi là chính xác, tôi rất muốn xem một tài liệu tham khảo về nó, chỉ vì tôi quan tâm đến đó là một thứ ☺
Michael Scheper

Câu trả lời:


211

Cho đến nay, cách đơn giản nhất để xử lý vấn đề này là với Y-PPA-Manager (hiện đã tích hợp launchpad-getkeystập lệnh với giao diện đồ họa).

  1. Để cài đặt nó, trước tiên hãy thêm kho lưu trữ webupd8 cho chương trình này:

    sudo add-apt-repository ppa:webupd8team/y-ppa-manager
    
  2. Cập nhật danh sách phần mềm của bạn và cài đặt Y-PPA-Manager:

    sudo apt-get update
    sudo apt-get install y-ppa-manager
    
  3. Chạy y-ppa-manager (tức là gõ y-ppa-managerrồi nhấn phím enter).

  4. Khi cửa sổ y-ppa-manager chính xuất hiện, nhấp vào "Nâng cao".

  5. Từ danh sách các tác vụ nâng cao, chọn "Thử nhập tất cả các khóa GPG bị thiếu" và nhấp vào OK.

    Bạn đã hoàn tất! Như hộp thoại cảnh báo cho biết khi bạn bắt đầu thao tác, có thể mất khá nhiều thời gian (khoảng 2 phút đối với tôi) tùy thuộc vào số lượng PPA của bạn và tốc độ kết nối của bạn.


18
Không thực sự hữu ích trong một máy chủ web, vì điều này cài đặt X11. Đừng sử dụng phương pháp này nếu bạn đang dùng phiên bản máy chủ, hãy kiểm tra câu trả lời của karthick87!
goncalotomas

2
Điều này có cho phép xác minh các khóa được nhập không, hoặc bạn chỉ đơn giản nhập một cách mù quáng mọi thứ (và do đó tin tưởng tất cả những người có PPA)?
Paŭlo Ebermann

2
Bạn đang nhập (và tin tưởng) các khóa cho mỗi PPA bạn đã thêm vào hệ thống của mình. Giả định là bạn tin tưởng các PPA đó và đã kiểm tra chúng trước khi bạn thêm chúng qua apt.
đơn điệu

6
Câu trả lời này dễ dàng hơn nhiều và thực sự cần ít lệnh hơn câu trả lời "đồ họa" này.
jpaugh

1
Nhưng câu hỏi yêu cầu một phương pháp đồ họa.
đơn điệu

556

Thực hiện các lệnh sau trong thiết bị đầu cuối

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys <PUBKEY>

<PUBKEY>khóa công khai bị thiếu của bạn ở đâu cho kho lưu trữ, vd 8BAF9A6F.

Sau đó cập nhật

sudo apt-get update

PHƯƠNG PHÁP LUÂN PHIÊN:

sudo gpg --keyserver pgpkeys.mit.edu --recv-key  <PUBKEY>
sudo gpg -a --export <PUBKEY> | sudo apt-key add -
sudo apt-get update

Lưu ý rằng khi bạn nhập khóa như thế này bằng cách sử dụng, apt-keybạn đang nói với hệ thống rằng bạn tin tưởng khóa bạn đang nhập để ký phần mềm mà hệ thống của bạn sẽ sử dụng. Không làm điều này trừ khi bạn chắc chắn rằng khóa thực sự là chìa khóa của nhà phân phối gói.


2
@Naruto Điều đó là bình thường. Nó có nghĩa danh sách đã không thay đổi trên máy chủ.
ζ--

9
Bạn chỉ có thể truyền NO_PUBKEYgiá trị dưới dạng tham số khóa. ví dụ lỗi GPG [...] NO_PUBKEY 3766223989993A70 => sudo apt-key adv --keyserver keyerver.ub Ubuntu.com --recv-key 3766223989993A70
SMMousavi

23
8BAF9A6F <- bạn lấy số đó ở đâu?
Olivier Lalonde

13
Số 8BAF9 ... là những gì bạn thấy trong lỗi ban đầu. Nó sẽ giống như NO_PUBKEY 8BAF ...
Alex

9
Nếu ai đó can thiệp vào dữ liệu giữa tôi và kho lưu trữ và những thứ được thay thế mà họ đã ký, điều này sẽ khiến tôi chỉ cần thêm khóa họ đã sử dụng, ít nhiều sẽ bị mù. Vì vậy, quá trình để xác minh rằng chìa khóa là đúng?
mc0e

43

Nó xảy ra khi bạn không có khóa công khai phù hợp cho kho lưu trữ.

Để giải quyết vấn đề này, sử dụng lệnh này:

gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv 9BDB3D89CE49EC21

trong đó lấy khóa từ máy chủ khóa ubfox. Và sau đó:

gpg --export --armor 9BDB3D89CE49EC21 | sudo apt-key add -

trong đó thêm khóa vào khóa tin cậy apt.

Giải pháp có thể được tìm thấy ở đây & đây & đây .


4
Nếu hkp: //keyserver.ubfox.com không hoạt động, hãy sử dụng pgpkeys.mit.edumáy chủ này .
RajaRaviVarma

1
Câu trả lời này đã giải quyết vấn đề của tôi với kho lưu trữ Kylin. Phương thức nhập bính âm sogou đã thêm nguồn vào /etc/apt/sources.list.d/thư mục của tôi , nhưng dường như không nhập khóa gpg. Câu trả lời hay, đơn giản và chính xác, +1
Sergiy Kolodyazhnyy

1
Cảm ơn! Làm việc cho tôi để giải quyết vấn đề kho lưu trữ php.
Akash Agarwal

1
Câu trả lời này đã giải quyết cập nhật của tôi chohttp://ppa.launchpad.net/webupd8team/java/ubuntu xenial InRelease
mvw

và hoàn toàn có thể, rằng bạn chưa tạo khóa cho hệ thống của mình trước đây. do đó, trước khi làm theo các bước trên, hãy sử dụng - gpg --gen-key (tài liệu tham khảo - bao
bì.ubfox.com/html/getting

35

Bạn cần lấy và nhập khóa.

Để lấy chìa khóa từ PPA, hãy truy cập trang Launchpad của PPA. Trên mỗi trang PPA tại Launchpad, bạn sẽ tìm thấy liên kết này (2), sau khi nhấp vào 'Chi tiết kỹ thuật về PPA này' (1):

hình 1

Theo dõi và nhấp vào liên kết ID chính (3):

hình 2

Lưu trang, đây là tập tin chính của bạn.


Bây giờ là lúc để nhập nó:

  • Applications > Software Center,
  • Edit > Software sources...,
  • Nhập mật khẩu của bạn,
  • Chuyển đến Authenticationtab và nhấp vào Import Key File..., cuối cùng
  • Chọn tệp khóa đã lưu và nhấp vào OK.

1
Đừng để mất thời gian của bạn, hãy xem câu trả lời dưới đây.
Felipe

5
@FelipeMicaroniLalli, câu hỏi là làm thế nào để thêm một pubkey bằng GUI, không phải thiết bị đầu cuối, vì vậy câu trả lời này là hoàn hảo.
Chris Woods

Đó là nhiều dễ dàng hơn và nhanh hơn bây giờ để làm điều này với y-ppa-manager (cũng là một ứng dụng gui). Xem câu trả lời của tôi dưới đây.
đơn điệu

1
OK, nhưng điều gì sẽ xảy ra nếu kho lưu trữ không phải là một ppa ubfox. Ví dụ: Intel chạy kho lưu trữ của riêng họ cho trình điều khiển phần cứng video tại download.01.org
mc0e

Hướng dẫn từng bước tuyệt vời, cảm ơn rất nhiều! thực sự hữu ích cho một số người không thêm khóa thông qua apt-key.
Roy Ling

12

apt chỉ có thể xử lý 40 khóa trong /etc/apt/trusty.gpg.d. 41 khóa và bạn sẽ nhận được lỗi GPG "không tìm thấy khóa chung" ngay cả khi bạn thực hiện tất cả các bước để thêm (các) khóa bị thiếu.

Kiểm tra xem nếu có bất kỳ khóa không sử dụng trong tệp này từ ppa (s) bạn không còn sử dụng. Nếu tất cả đang được sử dụng, hãy xem xét xóa một số ppa (s) cùng với các tệp khóa tương ứng trong /etc/apt/trusty.gpg.d

Hơn nữa, sử dụng

sudo apt-key adv

Được coi là rủi ro bảo mật và không được khuyến khích vì bạn đang " phá hoại toàn bộ khái niệm bảo mật vì đây không phải là cách nhận khóa an toàn vì nhiều lý do khác nhau (như: hkp là một giao thức rõ ràng, các khóa ngắn và thậm chí dài có thể bị giả mạo, khóa ) ". http://ubuntuforums.org/showthread.php?t=2195579

Tôi tin rằng cách chính xác để thêm các khóa bị thiếu (ví dụ 1ABC2D34EF56GH78) là

gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv 1ABC2D34EF56GH78
gpg --export --armor 1ABC2D34EF56GH78 | sudo apt-key add -

1
Tôi tìm thấy nó dễ dàng hơn để chỉ cần xóa tất cả các phím từ /etc/apt/trusted.gpg.d và sau đó tiến hành để chấp nhận câu trả lời askubuntu.com/a/386003/284664
janot

@mchid Bạn có thể vui lòng trích dẫn một tài liệu / url nói về giới hạn 41 khóa này không?
Ngày

@SebMa Liên kết được đăng trong câu trả lời của tôi và tham chiếu một lỗi trong Debian bị ảnh hưởng bởi giới hạn này. Đây là một mỏ neo cho bài đăng thực tế trong liên kết có đề cập đến điều này: ubuntuforums.org/showthread.php?t=2195579#post_message_12882784 Tôi không chắc liệu tài liệu thực tế có tồn tại trên này không nhưng số 40 có thể đã được sử dụng vì "40 "Dịch thành" rất nhiều "trong nhiều ngôn ngữ khác nhau.
mchid

@SebMa Tuy nhiên, giới hạn tồn tại hoặc tồn tại tại thời điểm của câu trả lời này và trong một thời gian sau đó. Cá nhân tôi đã trải nghiệm giới hạn 41 phím này và đã sửa nó bằng cách xóa các khóa không sử dụng để thêm khóa mới khi đã tồn tại 40 khóa để tránh lỗi này.
mchid


9

Có một tập lệnh nhỏ được đóng gói trong WebUpd8 PPA mà tôi sẽ liên kết dưới dạng một bản tải xuống .deb duy nhất để bạn không phải thêm toàn bộ PPA - tự động nhập tất cả các khóa GPG bị thiếu.

Tải xuống và cài đặt Launchpad-getkey (bỏ qua ~ natty trong phiên bản của nó, nó hoạt động với tất cả các phiên bản Ubuntu từ Karmic cho đến Oneiric). Sau khi cài đặt, mở một thiết bị đầu cuối và gõ:

sudo launchpad-getkeys

Nếu bạn đứng sau một proxy, mọi thứ phức tạp hơn một chút vì vậy hãy xem điều này để biết thêm thông tin


1
Đó thực sự là cách tôi làm bây giờ, vì tôi thấy chương trình này được trình bày trên trang web của bạn. Tuy nhiên, mục đích của câu hỏi là biết cách thực hiện nó theo cách đồ họa.
Agmenor

Kịch bản launchpad-getkeys hiện được tích hợp vào chương trình Y-PPA-manager. launchpad.net/~webupd8team/+archive/y-ppa-manager
monotasker

5

Tôi gặp vấn đề tương tự trong khi cài đặt Heroku. Liên kết dưới đây đã giải quyết vấn đề của tôi -

http://naveenubfox.blogspot.in/2011/08/fixing-gpg-keys-in-ubfox.html

Sau khi khắc phục sự cố NO_PUBKEY, sự cố bên dưới vẫn còn

W: GPG error: xhttp://toolbelt.heroku.com ./ Release: The following signatures were invalid: BADSIG C927EBE00F1B0520 Heroku Release Engineering <release@heroku.com>

Để sửa nó, tôi đã thực hiện các lệnh sau trong terminal:

sudo -i  
apt-get clean  
cd /var/lib/apt  
mv lists lists.old  
mkdir -p lists/partial  
apt-get clean  
apt-get update  

Nguồn - Liên kết để giải quyết nó


4

Hãy chắc chắn rằng bạn đã apt-transport-httpscài đặt:

dpkg -s apt-transport-https > /dev/null || bash -c "sudo apt-get update; 
sudo apt-get install apt-transport-https -y" 

Thêm kho lưu trữ:

curl https://repo.skype.com/data/SKYPE-GPG-KEY | sudo apt-key add - 
echo "deb [arch=amd64] https://repo.skype.com/deb stable main" | sudo tee /etc/apt/sources.list.d/skype-stable.list 

Cài đặt Skype cho Linux:

sudo apt-get update 
sudo apt-get install skypeforlinux -y

Nguồn: https://community.skype.com/t5/Linux/Skype-for-Linux-Beta-signatures-couldn-t-be-verified-because-the/td-p/4645756


3

Tổng quát hơn, phương pháp sau sẽ hoạt động cho mọi kho lưu trữ. Trước hết tìm kiếm, với sự trợ giúp cuối cùng của công cụ tìm kiếm, cho một văn bản trên trang web của nhà cung cấp chương trình trông như sau:

-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.1 (GNU/Linux)
[...]
-----END PGP PUBLIC KEY BLOCK-----

Một văn bản như vậy là ví dụ được hiển thị trên http://deb.opera.com . Sao chép đoạn văn, dán nó vào một tập tin trống mà bạn tạo trên máy tính để bàn của bạn. Điều này dẫn đến các tập tin quan trọng.

Sau đó tiếp tục với việc nhập khóa:

  • Ứng dụng> Trung tâm phần mềm
  • Chỉnh sửa> Nguồn phần mềm ..., nhập mật khẩu
  • Tab xác thực, nhấp vào 'Nhập tệp khóa ...'
  • Chọn tệp khóa đã lưu và nhấp vào 'Ok'.

Bây giờ bạn có thể xóa tệp khóa được tạo trước đó.


3

Tốt Tôi cuối cùng tìm thấy con đường!

Tôi đã thử nghiệm tất cả các phương pháp để sửa lỗi GPG NO_PUBKEY và không có gì hoạt động với tôi.

Tôi đã xóa toàn bộ nội dung của thư mục /etc/apt/trusty.gpg.d

cd /etc/apt/trusted.gpg.d
sudo rm -R *
sudo apt-get update

Và tôi sử dụng phương pháp Y-PPA-Manager vì tôi quá lười để tạo tất cả pubkey theo cách thủ công (quá nhiều): http://www.unixmen.com/fix-w-gpg-error-no_pubkey-ub Ubuntu /

chạy sudo apt-get update lần nữa và cuối cùng tất cả đều hoạt động tốt! Xe tăng!

Nguồn dựa trên: bài # 17 trên https://bugs.launchpad.net/ubfox/+source/apt/+orms/1263540


Đây là điều duy nhất làm việc cho tôi quá. Có lẽ là một keyfile bị hỏng ở đâu đó?
donnek

0

Tôi gặp vấn đề tương tự với ứng dụng khách Trình cập nhật của DynDNS.

Hóa ra đó chỉ là chìa khóa hết hạn.

Cài đặt lại phần mềm (tải xuống một phần mềm mới .debtừ trang web, sau đó sử dụng Trung tâm phần mềm để cài đặt lại) đã khắc phục sự cố.

Thông báo lỗi để tham khảo:

W: GPG error: http://cdn.dyn.com stable/ Release: The following signatures were invalid: KEYEXPIRED 141943.......
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.