GPGエラー「NO_PUBKEY」を修正するにはどうすればよいですか?


364

Software Sourcesプログラムに追加のリポジトリをいくつか追加しました。しかし、パッケージデータベースをリロードすると、次のようなエラーが表示されます。

W:GPGエラー:http : //ppa.launchpad.net trusty InRelease:公開キーが利用できないため、次の署名を検証できませんでした:NO_PUBKEY 8BAF9A6F

apt-keyUbuntuの公式ドキュメントによると、ターミナルで修正できることはわかっています。しかし、私はグラフィカルにそれをしたかったでしょう。端末を使用せずにこれを行う方法はありますか?



「平均」?あなたはそれが何を意味するのか興味があります。
マイケルシェパー

1
このSOスレッドで解決策を確認できます。関連サイト
アニケットタクール

@MichaelScheper「端末を開かないという意味はありますか?」=〜 '端末なしでそれを行う方法はありますか?'
ウィルフ

@Wilf:ああ!私は文法を軽視するつもりはありませんが、混乱させられました。私がチェックしたばかりの参照から、「手段」は単数名詞であり、あなたが意図したものです。dictionary.cambridge.org/dictionary/english/meansしかし、もしあなたとAgmentorが質問の文法が正しい英語の異形を使用しているなら、私はそれに興味があるという理由だけでそれへの参照を見たいです。そのようなこと。☺
マイケルScheper

回答:


211

これを処理する最も簡単な方法は、Y-PPA-Managerを使用することです(これにより、launchpad-getkeysスクリプトがグラフィカルインターフェイスに統合されます)。

  1. それをインストールするには、最初にこのプログラムのwebupd8リポジトリを追加します。

    sudo add-apt-repository ppa:webupd8team/y-ppa-manager
    
  2. ソフトウェアリストを更新し、Y-PPA-Managerをインストールします。

    sudo apt-get update
    sudo apt-get install y-ppa-manager
    
  3. y-ppa-managerを実行します(つまりy-ppa-manager、入力してEnterキーを押します)。

  4. y-ppa-managerのメインウィンドウが表示されたら、[詳細設定]をクリックします。

  5. 高度なタスクのリストから「不足しているすべてのGPGキーをインポートしてみてください」を選択し、「OK」をクリックします。

    できました!操作を開始すると警告ダイアログに表示されるように、使用しているPPAの数と接続の速度によっては、かなり時間がかかる場合があります(私にとっては約2分)。


18
これはX11をインストールするため、Webサーバーではあまり役に立ちません。サーバーエディションを使用している場合は、この方法を使用しないでください。karthick87の答えを確認してください。
goncalotomas

2
これにより、インポートされるキーを検証できますか、それとも単に盲目的にすべてをインポートするのですか(したがって、PPAを持っているすべての人を信頼するのですか)。
パエロエベルマン

2
システムに追加したすべてのPPAのキーをインポート(および信頼)しています。仮定は、それらのPPAを信頼し、aptを介して追加する前にそれらをチェックアウトしたことです。
モノタスカー

6
この回答はるかに簡単で、実際にはこの「グラフィカルな」回答よりも少ないコマンドで済みます。
-jpaugh

1
しかし、質問はグラフィカルな方法を求めました。
モノタスカー

556

ターミナルで次のコマンドを実行します

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

<PUBKEY>リポジトリの欠落している公開鍵はどこですか8BAF9A6F

その後、更新

sudo apt-get update

代替方法:

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

このようなキーを使用しapt-keyてインポートする場合、システムが使用するソフトウェアに署名するためにインポートするキーを信頼することをシステムに伝えていることに注意してください。キーが本当にパッケージディストリビューターのキーであることが確実でない限り、これを行わないでください。


2
@Narutoそれは正常です。サーバー上リストが変更されていないことを意味ます。
–ζ

9
あなたは単にNO_PUBKEYキーパラメータとして値を渡すことができます。たとえば、GPGエラー[...] NO_PUBKEY 3766223989993A70 => sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3766223989993A70
SMMousavi

23
8BAF9A6F <-その番号はどこで入手しましたか?
オリビエラロンデ14年

13
番号8BAF9 ...は、元のエラーで表示されるものです。NO_PUBKEY 8BAFのようなものになります...
アレックス14年

9
誰かが私とリポジトリの間でデータを改ざんし、署名したものを置き換えた場合、使用したキーを多少とも盲目的に追加するだけで終わります。それでは、キーが正しいものであることを検証するプロセスは何ですか?
mc0e

43

リポジトリに適した公開鍵がない場合に発生します。

この問題を解決するには、次のコマンドを使用します。

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

これは、ubuntuキーサーバーからキーを取得します。そして、これ:

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

apt信頼キーにキーを追加します。

解決策は、ここここここにあります


4
hkp://keyserver.ubuntu.comが機能していない場合は、このpgpkeys.mit.eduサーバーを使用してください。
RajaRaviVarma

1
この回答により、Kylinリポジトリに関する問題が解決しました。sogou pinyin入力メソッドはソースを/etc/apt/sources.list.d/フォルダーに追加しましたが、どうやらgpgキーをインポートしなかったようです。良い答え、シンプルかつ要点、+ 1!
セルギー・コロディアズニー

1
ありがとう!phpリポジトリの問題を解決するために働いた。
アカシュアガルワール

1
この答えは私の更新を解決しましたhttp://ppa.launchpad.net/webupd8team/java/ubuntu xenial InRelease
mvw

システムのキーを以前に生成したことがない可能性があります。したがって、上記の手順を使用して、次の前に- gpg --gen-key (参照- packaging.ubuntu.com/html/getting-set-up.html
parasrish

35

キーを取得してインポートする必要があります。

PPAからキーを取得するには、PPAのLaunchpadページにアクセスしてください。LaunchpadのすべてのPPAページには、「このPPAに関する技術的詳細」(1)をクリックした後、このリンク(2)があります。

画像1

それに従って、キーIDリンク(3)をクリックします。

画像2

ページを保存します。これはキーファイルです。


それをインポートする時が来ました:

  • Applications > Software Center
  • Edit > Software sources...
  • パスワードを入力してください、
  • 行きAuthenticationタブをクリックしImport Key File...、最後に、
  • 保存されたキーファイルを選択し、をクリックしOKます。

1
時間を無駄にしないでください。以下の回答をご覧ください。
フェリペ

5
@FelipeMicaroniLalli、質問はターミナルではなく GUIを使用してパブキーを追加する方法でしたので、この答えは完璧でした。
クリスウッズ

それはだずっと Y-PPA-マネージャ(また、GUIアプリケーション)でこれを行うには、今より簡単かつ迅速。以下の私の答えをご覧ください。
モノタスカー

1
でも、リポジトリがUbuntu PPAではない場合はどうでしょう。例えばインテルはでビデオハードウェアドライバのために独自のリポジトリを実行download.01.org
mc0e

すばらしいステップバイステップガイド、ありがとうございます!を介してキーを追加できなかった人にとっては本当に役立ちますapt-key
ロイ玲

12

aptは/etc/apt/trusted.gpg.d内の40個のキーしか処理できません。41個のキーがあり、すべての手順を実行して不足しているキーを追加しても、GPGエラー「公開キーが見つかりません」が表示されます。

使用しなくなったppaのこのファイルに未使用のキーがあるかどうかを確認します。すべてを使用している場合は、/ etc / apt / trusted.gpg.d内の対応するキーファイルとともにいくつかのppaを削除することを検討してください

さらに、

sudo apt-key adv

これはセキュリティリスクと見なされ、さまざまな理由でキーを受信する安全な方法ではないため、セキュリティコンセプト全体を台無しにしているため推奨さません(hkpはプレーンテキストプロトコルであり、短いキーIDでも長いキーIDでも偽造できます... )」。http://ubuntuforums.org/showthread.php?t=2195579

不足しているキー(1ABC2D34EF56GH78など)を追加する正しい方法は

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

1
/etc/apt/trusted.gpg.dからすべてのキーを削除してから、受け入れられた回答askubuntu.com/a/386003/284664に
15

@mchidこの41キーの制限について説明しているドキュメント/ URLを引用してください。
SebMa

@SebMaリンクは私の回答に掲載されており、この制限の影響を受けたDebianのバグを参照しています。これについて言及しているリンク内の実際の投稿へのアンカーは、次のとおりです。 「」は多くの異なる言語で「たくさん」に翻訳されます。
mchid

@SebMaただし、この回答の時点およびその後しばらくの間、制限は存在するか、存在していました。私は個人的にこの41キーの制限を経験し、このエラーを回避するために40キーが既に存在する場合、未使用のキーを削除して新しいキーを追加することで修正しました。
mchid


9

WebUpd8 PPAにパッケージ化された小さなスクリプトがあり、これを単一の.debダウンロードとしてリンクするため、PPA全体を追加する必要はありません-これにより、欠落しているすべてのGPGキーが自動的にインポートされます。

Launchpad-getkeysをダウンロードしてインストールします(バージョンの〜nattyは無視してください。KarmicからOneiricまでのすべてのUbuntuバージョンで動作します)。インストールしたら、ターミナルを開いて次を入力します。

sudo launchpad-getkeys

プロキシの背後にいる場合、事態はもう少し複雑です。詳細についてはこちらを参照


1
あなたのウェブサイトでこのプログラムが紹介されているのを見たので、それは確かに今のやり方です。それにもかかわらず、質問の目的は、グラフィカルな方法でそれを行う方法を知ることでした。
-Agmenor

launchpad-getkeysスクリプトは、プログラムY-PPA-managerに統合されました。 launchpad.net/~webupd8team/+archive/y-ppa-manager
monotasker

5

Herokuのインストール中に同じ問題に直面しました。以下のリンクは私の問題を解決しました-

http://naveenubuntu.blogspot.in/2011/08/fixing-gpg-keys-in-ubuntu.html

NO_PUBKEY問題を修正した後、以下の問題が残った

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

修正するには、ターミナルで次のコマンドを実行しました。

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

ソース- それを解決するためのリンク


4

apt-transport-httpsインストール済みであることを確認してください。

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

リポジトリを追加:

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 

Linux用Skypeをインストールします。

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

ソース:https : //community.skype.com/t5/Linux/Skype-for-Linux-Beta-signatures-couldn-t-be-verified-because-the/td-p/4645756


3

より一般的には、次の方法がすべてのリポジトリで機能するはずです。まず、検索エンジンの助けを借りて、次のようなプログラムプロバイダーのWebサイトのテキストを検索します。

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

このようなテキストは、たとえばhttp://deb.opera.comに表示されます。パッセージをコピーし、デスクトップに作成した空のファイルに貼り付けます。これにより、キーファイルが作成されます。

次に、キーのインポートを続行します。

  • アプリケーション>ソフトウェアセンター
  • 編集>ソフトウェアのソース...、パスワードを入力
  • [認証]タブで、[キーファイルのインポート...]をクリックします。
  • 保存されたキーファイルを選択し、[OK]をクリックします。

これで、以前に作成したキーファイルを削除できます。


3

良い!最後に道を見つけました!

GPGエラーNO_PUBKEYを修正するためにすべてのメソッドをテストしましたが、何も機能していません。

フォルダー/etc/apt/trusted.gpg.dの内容全体を削除しました

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

そして、私はY-PPA-Managerメソッドを使用します。なぜなら、すべてのパブキーを手動で作成するには遅すぎるからです(多すぎる):http : //www.unixmen.com/fix-w-gpg-error-no_pubkey-ubuntu/

sudo apt-get updateを再度実行し、最後にすべてがうまく動作するようになりました!戦車!

ベースのソース:https : //bugs.launchpad.net/ubuntu/+source/apt/+bug/1263540に投稿#17


これも私のために働いた唯一のものでした。おそらくどこかに破損したキーファイルがありますか?
-donnek

0

DynDNSのアップデータクライアントでも同じ問題が発生しました。

鍵の有効期限が切れていたことが判明しました。

ソフトウェアを再インストールする(.debWebサイトから新しいものをダウンロードしてから、Software Centerを使用して再インストールする)と、問題が修正されました。

参照用のエラーメッセージ:

W: GPG error: http://cdn.dyn.com stable/ Release: The following signatures were invalid: KEYEXPIRED 141943.......
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.