apt-get更新で「公開キーなし」


133

を実行するapt-get updateと、次のエラーが表示されます。

root@ADS3-Debian6:/home/aluno# apt-get update
Atingido http://sft.if.usp.br squeeze Release.gpg
Ign http://sft.if.usp.br/debian/ squeeze/contrib Translation-en
Ign http://sft.if.usp.br/debian/ squeeze/contrib Translation-pt
Ign http://sft.if.usp.br/debian/ squeeze/contrib Translation-pt_BR

(...)

Obter:10 http://security.debian.org squeeze/updates/non-free i386 Packages [14 B]
Baixados 612 kB em 4s (125 kB/s)                    
Lendo listas de pacotes... Pronto
There is no public key available for the following key IDs: 8B48AD6246925553

2
...そして、あなたが省略した文字列は重要なビットです。それは、私たちはどのあなたが不足しているキー(キーリングインストールすると仮定したパッケージを、好ましくは役立ちません示唆し、信頼できるメディア-そのルーダから)識別できたい
derobert

1
猫がそのようにキーボードの上を歩いてはいけません。:-)⁠
G-マン

回答:


173

他の回答は、キー '8B48AD6246925553'が示すパッケージに存在するかどうかに応じて機能します。

キーが必要な場合は、そのキーを取得する必要があります。キーを見つける場所は、キーサーバーにあります(ほとんどのキーサーバーで可能です)。

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 8B48AD6246925553

これは、ここで私はあまりにもではなく、他の答えを働いていた...
サイ・キラン

@starbeamrainbowlabs今では!=)
そのブラジル人の

@ThatBrazilianGuy:D
starbeamrainbowlabs

4
グローバルなapt-trustを任意のキーに追加するなどの危険な操作を行うことができるように、受信したキーがレギットであるかどうかを判断する方法はありますか?キーを受け取った後、キーの信頼性を確認する方法はありますか?キー検証を実行するために実行する手順はどれですか?たとえば、ftp-master.debian.org / keys / ziyi_key_2002.ascしか持っていないので、信頼チェーンを壊さずに最新のキーにアクセスするにはどうすればよいですか?
ティノ

1
@ThatBrazilianGuy:それがあなたの質問であるという事実は、あなたに答えを破壊する権利を与えません。
Gマン

76

以下の手順ではなく、@ mariotomoの回答に従うことをお勧めします。


次のキーIDに利用可能な公開キーはありませんによると、これはそれを修正します:

sudo aptitude install debian-archive-keyring

参照資料


最後の8桁の16進数はこれと共有されるため、おそらくwheezyについて文句を言っています。残念ながらOPが省略されました:pub 4096R / 46925553 2012-04-27 [expires:2020-04-25] uid Debian Archive Automatic Signing Key(7.0 / wheezy)<ftpmaster@debian.org>
Martin Dorey

5
されてdebian-keyring本当に必要?それは私にちょうどうまくいきましたdebian-archive-keyring
x-yuri

当然のことながら、異なる16進数には異なるソリューションが必要になる場合があります。Google検索で番号を引用符で囲んでその番号を逐語的に検索すると、このページにたどり着き、問題を修正しました:reddit.com/r/linux4noobs/comments/4grdo7/…(@ mariotomo's answerうまくいったかもしれない-私は試しなかった)
マイケルシェパー

debian-keyring必要ありません
x-yuri

38

私はお勧め:

$ sudo apt-get install debian-archive-keyring
$ sudo apt-key update

これはdebian-keyring、インストールせず、99%の時間が不要なため、他のアプローチよりも優れています。


1
これが私が必要とするすべてでした-私にとってはうまくいきました!
ハーパービル

魅力のように働きます!
ウィルベイビ

1
これは、Dockerコンテナにうまく適合するため、私にとってより良いソリューションでした。しかし、(少なくとも、ドッカーで)あなたが最初にのみ、このパッケージをインストールする必要があり、2番目んのでご注意apt-get updateそしてあなたが本当にしたいパッケージをインストールします。
悪意のある

Debian 10:警告:「apt-key update」は非推奨であり、使用しないでください!注:ディストリビューションでは、このコマンドはノーオペレーションであるため、安全に削除できます
aexl

実際には、あなたは、debian-キーリングは、その最新バージョンにインストールされている場合でも、Debianのアーカイブ・キーリングをインストールする必要があるかもしれません
アンヘル・

17

次のキーIDに利用可能な公開キーはありませんというエラーは、深刻なセキュリティ問題を示しています。公開キーが見つからないため、オペレーティングシステムパッケージの公開キーとの整合性をチェックできません。

メッセージが次の場合:

There is no public key available for the following key IDs: 1397BC53640DB551

このコマンドを使用して、キーを使用しているリポジトリを確認できます。

for n in `ls /var/lib/apt/lists/*gpg`; do echo "$n" ; gpg --list-packets "$n" | grep 1397BC53640DB551; done

この例では、Chrome用のGoogleのリポジトリは次のとおりです。

/var/lib/apt/lists/dl.google.com_linux_chrome_deb_dists_stable_Release.gpg

Googleやその政府などを信頼している場合は、キーの場所を見つけて追加する必要があります。

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

私のために修正されました:)ありがとうございます!しかし、好奇心が強いのは何が悪いのでしょうか?最初のコマンドは何をし、2番目のコマンドは何をしますか?これですべての問題を解決する必要がありますか?私の問題はGoogle Chromeにもありました。
ローハン

そして、最初のコマンドはgpgで何かを変更しますか?それはいくつかのconfファイルgpg.confを作成したと言いますが、それが欲しいかどうかはわかりません。
ローハン

最初は、パケットのリストでキーを検索して、問題のあるパケットを確認します。2番目のものはキーをダウンロードし、システムに追加します。この場合、最初のコマンドは役に立ちませんが、一般的なアプローチとしては適切です。
マルコ・スッラ

3

Linux Mint(カーネルバージョン3.13.0-24)で同じ問題に直面し、コマンドを使用してそれを解決することができました。

gpg --recv-keys <the-reported-key>

gpg --export <the-reported-key> | apt-key add -

注意すべき点:

1)コマンドは順番に実行された2)コマンドはrootユーザーとして実行された

この回答の礼儀。


1

代替として:

$ sudo apt-get install debian-keyring debian-archive-keyring
$ sudo apt-key update

6
回答でブログを宣伝しないでください。それがあなたの略歴の目的です。
slm

1

私の答えは、次のbashスクリプトレットの@mariotomo(私が投票した人)のわずかなアップグレード(IMHO、YMMV)です。

  • また使用します gpg
  • よりパラメータ化する
  • (別のキーサーバーも使用しますが、この場合はほとんど違いがないと思われます)

eval「ドライラン」の行をコメントアウトすることもできます。その場合、スクリプトレットは実際に実行せずに、実行したいことだけを表示します。NO_PUBKEYこれを使用するたびに必ず値を変更してください(KEYSERVER必要に応じて変更することもできます)。

NO_PUBKEY='1397BC53640DB551' # CHANGE TO THE VALUE CITED IN YOUR ERROR MESSAGE!
KEYSERVER='keys.gnupg.net'

NO_PUBKEY_LEN="${#NO_PUBKEY}"
echo "NO_PUBKEY_LEN='${NO_PUBKEY_LEN}'"     # for sanity or debugging
# note following works because bash arrays have 0-based indices
NO_PUBKEY_2ND_HALF_START=$(( NO_PUBKEY_LEN/2 ))
echo "NO_PUBKEY_2ND_HALF_START='${NO_PUBKEY_2ND_HALF_START}'" # ditto
NO_PUBKEY_2ND_HALF="${NO_PUBKEY:${NO_PUBKEY_2ND_HALF_START}}"
echo "NO_PUBKEY_2ND_HALF='${NO_PUBKEY_2ND_HALF}'"             # ditto

for CMD in \
  'date' \
  "gpg --keyserver ${KEYSERVER} --recv-keys ${NO_PUBKEY_2ND_HALF}" \
  'date' \
  "gpg -a --export ${NO_PUBKEY_2ND_HALF} | sudo apt-key add -" \
; do
  echo -e "${CMD}"
  eval "${CMD}"
done

0

killall -q gpg-agent他のソリューションが機能しない場合に実行します。うまくいくかもしれません。

Ubuntu 18.04のPPAリポジトリでも同様のエラーが発生していましたが、先月インターネットでさまざまなソリューションを試した後、gpg-agentにつまずいたのでそれを殺しました。その後、PPAリポジトリが更新を開始しましたsudo apt-get update。セキュリティが危険にさらされる可能性があることは知っていますが、PPAからのパッケージが必要な場合がありますが、GPGでは許可されません。その後、再びgpg-agentを起動すると、正常に戻ります。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.