不足しているGPGキーを修正する方法は?


154

Ubuntu 12.04をインストールしたばかりで、いくつかのレポを追加しましたが、そのときにapt-get updategpgキーが見つかりませんでした。

次のコマンドは私には機能しないようです:

apt-get update 2> /tmp/keymissing; for key in $(grep "NO_PUBKEY" /tmp/keymissing |sed "s/.*NO_PUBKEY //"); do echo -e "\nProcessing key: $key"; gpg --keyserver subkeys.pgp.net --recv $key && sudo gpg --export --armor $key | apt-key add -; done

この問題を修正するには?


1
この質問への回答に、このエラーが最初に発生した理由と、今後それを回避するための対処方法が含まれていればよいでしょう。
フリム

Y-ppa-managerを使用して問題を解決しました。解決してくれたAshuに感謝します!

1
スクリーンショットと詳細なソリューションopensourceforgeeks.blogspot.in/2013/04/...
Aniketタクール

回答:


222

このソリューションが気に入ったため、Ubuntuキーサーバーから不足しているキーを再ダウンロードします。

Ubuntuの場合

私の場合

 Reading package lists... Done  
 W: GPG error: http://ppa.launchpad.net precise 
 Release: The following signatures couldn't be verified because the public key is not available: 
 NO_PUBKEY 2EA8F35793D8809A

エラーメッセージに記載されている不足しているキーを追加するコマンドを次に示します。

sudo apt-key adv --keyserver ha.pool.sks-keyservers.net --recv-keys 2EA8F35793D8809A

そこで、不足しているキーを取得し2EA8F35793D8809A、keyserver.ubuntu.comに依頼して、aptにあるキーのリストに追加します。

Linuxミント
の場合キーサーバーは若干異なりますkeyserver.linuxmint.com

sudo apt-key adv --recv-key --keyserver keyserver.linuxmint.com "missing key"

試す代替キーサーバー
keyserver.ubuntu.com


1
askubuntu.com/a/136735/10998が機能しませんでした。
-nelaaro

5
これを行うことでセキュリティ上の影響はありますか?基本的に、httpで公開鍵をダウンロードするだけですよね?
Ajedi32

1
@iamcreasyは、インストールしているパッケージが安全でマルウェアのないことをUbuntuインストールに証明するために、各パッケージがubuntuキーサーバーによって署名されています。したがって、インストーラーは、インストールするパッケージが信頼できる検証済みのソースからのものかどうかを確認します。私はそれについて本当に良いドキュメントを見つけていませんが、これは[gpg doc](help.ubuntu.com/community/…
nelaaro

1
私は、必要なキーを追加する機能を作成している adkeys (){ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys "$1";}そして、私はこれを行うために使用しています重複や問題のあるキーを削除するには:grep -ril "pattern" /etc/apt | sudo xargs rm -f
SergioAraujo

1
をお勧めし--keyserver ha.pool.sks-keyservers.netます。これは、キーサーバーの高可用性プールであり、必要なキーを取得する可能性が大幅に向上します。
鳥のようなロビン

21

Y PPA managerGPGキーエラーの修正に役立つソフトウェアと呼ばれるものがあります。
Y PPAマネージャー

インストールする-

sudo add-apt-repository ppa:webupd8team/y-ppa-manager  
sudo apt-get update  
sudo apt-get install y-ppa-manager    

インストールしたら開始して、advance「欠落しているすべてのGPGキーをインポートする」に移動して選択します


2
このコマンドにsudoを追加する必要があります!sudo apt-get...
12

これは私にとってもうまくいき、Y PPA Managerの使いやすいクリーンなインターフェースにとても感銘を受けました。ありがとう、Ashu。
CoalaWeb

あなたの言うことはやりましたが、何も起こりませんでした。メニューのどこにもアプリが見つからないということです。
クリスティアナニコラエ

@CristianaNicolaeインストールすると、Y PPA Managerが[アプリケーション]> [システムツール]にあります。
アシュ

申し訳ありませんがアシュ、私はチェックし、ダブルチェックしました。まだそこに見えません。システムのどこかにインストールされているようですが、何らかの理由でメニューのどこにも表示されません。
クリスティアナ・ニコラエ

14

を使用した自動ダウンロードapt-key adv --recv-keysは、ファイアウォールの内側で機能しない場合があります。

この場合、WebブラウザーでUbuntu Key Serverの Webページを開き、文字列を検索します0x<hexadecimal code of your missing key>

pubセクションのリンクを開きます。キーの内容(-----BEGIN PGP PUBLIC KEY BLOCK----------END PGP PUBLIC KEY BLOCK-----)をファイルとして保存します。

次に実行します:

sudo apt-key add <file-with-saved-key>

ソース:http : //opensourceforgeeks.blogspot.in/2013/04/w-gpg-error-httpppalaunchpadnet-precise.html


12

最初に端末で次のコマンドを入力します

 sudo rm /var/lib/apt/lists/* -vf

次に、ターミナルで次のコマンドを入力してシス​​テムを更新します

 sudo apt-get update && sudo apt-get upgrade

この後、エラーは発生せず、すべて正常に動作するはずです。


返信用のthx。私の問題のためのsollutionはpreetyはるかに簡単だった:タイプ sudo suの上に私のコマンドを入力する前に
FIH

それはあなたを助けましたが、sudo su決して正しいアプローチではありません-この場合sudo -s、あなたが必要なことをしたでしょう。
ガントバート

私はあなたが意味したと思うsudo rm /var/lib/apt/lists/* -rf(「v」の代わりに「r」オプション)
Oliboy50

9
両方sudoを使用するとrm危険です。両方rmを使用すると*危険です。同じコマンドで3つを使用すると、サメ​​があなたまたはあなたのファイルを噛みます。
JB。

これは私のために働いていません。
WiSaGaN

9

Ubuntu 12.04 Preciseの場合:永続的なソリューション

新しいリポジトリを追加し、リポジトリリストを更新した後に発生するこのエラーメッセージ。これは、アドレスが無効になったサーバーが原因です。したがって、アドレスを適切なものに変更してください。

  1. ~/.gnupg/gpg.confテキストエディターでファイルを開きます。

    ターミナル内: gedit ~/.gnupg/gpg.conf

  2. 次に、このファイルで、次の太字の行(116行目)を見つけます(デフォルトは次のとおりです)。

    [...]
    keyserver hkp://keys.gnupg.net#keyserver
    mailto:pgp-public-keys@keys.nl.pgp.net#keyserver
    ldap://keyserver.pgp.com

  3. 次に、次の太字行を追加して、最終的に次の結果を得ます。

    (次のように2行目に#を追加して、古いアドレスをコメント化します)

    [...] keyserver hkp://keys.gnupg.net#keyserver mailto:pgp-public-keys@keys.nl.pgp.net#keyserver ldap://keyserver.pgp.com
    keyserver http://keyserver.ubuntu.com
    #

  4. ファイルを保存して、もう一度更新してみてください。

    ターミナル内: sudo apt-get update


7

nelaarの回答に基づく:

sudo apt-get update 2>&1 1>/dev/null | sed -ne 's/.*NO_PUBKEY //p' |
while read key; do
    echo 'Processing key:' "$key"
    sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys "$key"
done

スクリプトは、すべてのエラーを一時ファイルにダンプし、それらをループして、不足しているキーをインポートします。


6

最も簡単な方法はY PPA MAnagerを使用することです

sudo add-apt-repository ppa:webupd8team/y-ppa-manager
sudo apt-get update
sudo apt-get install y-ppa-manager 

ダッシュからY PPAマネージャーを開く

ここに画像の説明を入力してください

管理者パスワードを入力してください

ここに画像の説明を入力してください

詳細オプションをダブルクリック

ここに画像の説明を入力してください

不足しているGPGキーをすべてインポートしようとする

ここに画像の説明を入力してください

[OK]をクリックして修正します


4

まず、ターミナルで次のコマンドを入力します

sudo rm /var/lib/apt/lists/* -vf

次に、ターミナルで次のコマンドを入力してシス​​テムを更新します

sudo apt-get update && sudo apt-get upgrade

この後、エラーは発生せず、すべて正常に動作するはずです。


2

私のために働いたのは、最初にキーを削除してから再インストールすることでした。それを達成するために、私は次のことをしました。

root@ > ~: sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 630239CC130E1A7FD81A27B140976EAF437D05B5

で削除

root@ > ~: sudo apt-key del 630239CC130E1A7FD81A27B140976EAF437D05B5

次に、次を入力して再インストールします

root@ > ~: sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 630239CC130E1A7FD81A27B140976EAF437D05B5

1

同じ問題が発生しました。ppa(ppa:nathandyer/vocal-stable)を追加すると、リポジトリが壊れました。私はWeb Upd8の著者から、これを修正する方法について説明を受けました。ここで彼の手順を説明しました。

.gpg何か問題が発生した場合に備えて、キーをバックアップしてください。

バックアップを格納するフォルダーを作成しましょう。

  • mkdir ~/gpg-backups

    これにより、/etc/apt/trusted.gpg.d/フォルダー内のすべてのファイルがバックアップされます。

  • sudo cp /etc/apt/trusted.gpg.d/*.* ~/gpg-backups/

次に、すべての.gpgキーを削除します。

  • sudo rm /etc/apt/trusted.gpg.d/

  • sudo cp /etc/apt/trustdb.gpg ~/gpg-backups/

  • sudo rm /etc/apt/trustdb.gpg

ソフトウェアと更新の[認証]タブで、[デフォルトに戻す]をクリックしました

y-ppaマネージャーをインストールして、欠落しているすべてのGPGキーをインポートします

sudo add-apt-repository ppa:webupd8team/y-ppa-manager
sudo apt-get update
sudo apt-get install y-ppa-manager

参照


1
1行にエラーがあるようsudo rm /etc/apt/trusted.gpg.d/*です。オプションが指定されていない場合、*空でないディレクトリを削除できないため、EOLでの省略はできません。ファイルを移動する場合、ソースファイルを後で必要としないためです。rm-rsudo mv /etc/apt/trustdb.gpg ~/gpg-backups/rm
構文エラー

1

このようなエラーをbashスクリプトで自動的に修正したかったのです。興味のある方は、これでうまくいくはずです:

sudo apt-get update 2> /tmp/keymissing
if [ -f /tmp/keymissing ]
then
    for key in $(grep "NO_PUBKEY" /tmp/keymissing |sed "s/.*NO_PUBKEY //")
        do 
        echo -e "\nProcessing key: $key"
        sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys $key
        sudo apt-get update
    done
    rm /tmp/keymissing
fi

0

このようなものがある場合:

# aptitude update
...
Ign http://archive.canonical.com wily/partner Translation-en_US
Fetched 422 kB in 3s (130 kB/s)
W: GPG error: http://ubuntu.volia.net wily InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 40976EAF437D05B5 NO_PUBKEY 3B4FE6ACC0B21F32

まず最初に:

# sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3B4FE6ACC0B21F32

最後のコマンドの出力は次のとおりです。

gpg: keyblock resource `/etc/apt/trusted.gpg.d/webupd8team_ubuntu_experiments.gpg': resource limit
gpg: keyblock resource `/etc/apt/trusted.gpg.d/webupd8team_ubuntu_gthumb.gpg': resource limit

したがって/etc/apt/trusted.gpg.d/、未使用のキーに移動して削除し、それから繰り返しapt-key advaptitude update


0

走る wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | sudo apt-key add -


-1

ドイツ語の設定を使用して12.04をインストールすると、この問題が発生しました。リポジトリリストは、デフォルトでドイツのミラーリポジトリを使用しています。その場合は、リポジトリリストを編集し、ドイツのすべてのミラーリポジトリをUbuntu標準リポジトリに変更できます。

次の方法を使用できます。

sudo nano /etc/apt/sources.list

を使用してNanoを検索および置換しますAlt-r

検索(置き換える): /de.

と置換する: /

すべて置換(を押すA

ファイルを保存Ctrl-x

次に、ターミナルで次のコマンドを入力してシス​​テムを更新します。

sudo apt-get update && sudo apt-get upgrade

この後、エラーはなく、すべてが正常に機能するはずです。


2
これは、特にソースを使用していないことを考えると、OPの質問に実際には答えません。
ケビンボーエン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.