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
他の回答は、キー '8B48AD6246925553'が示すパッケージに存在するかどうかによって、機能するかどうかにかかわらず機能します。
キーが必要な場合は、そのキーを取得する必要があります。また、キーを見つける場所は、キーサーバーにあります(ほとんどのキーサーバーで実行できます)。
Sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 8B48AD6246925553
以下の手順ではなく、@ mariotomoの回答に従うことをお勧めします
次のキーIDに使用できる公開キーはありません によると、これにより修正されます:
Sudo aptitude install debian-archive-keyring
私はお勧め:
$ Sudo apt-get install debian-archive-keyring
$ Sudo apt-key update
これはdebian-keyring
をインストールしないため、他のアプローチよりも優れています。
エラー次のキーIDに使用できる公開キーがありませんは、重大なセキュリティ問題を示しています:anオペレーティングシステムパッケージの公開キーがないため、その公開キーとの整合性をチェックできません。
メッセージが次の場合:
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
この例では、GoogleのChrome用リポジトリです。
/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 -
Linux Mint(カーネルバージョン3.13.0-24)でも同じ問題に直面し、次のコマンドを使用して解決できました。
gpg --recv-keys <the-reported-key>
gpg --export <the-reported-key> | apt-key add -
注意すべき点:
1)コマンドが順番に実行された2)コマンドがrootユーザーとして実行された
礼儀 this 答え。
私の答えは、次の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
別の方法として:
$ Sudo apt-get install debian-keyring debian-archive-keyring
$ Sudo apt-key update
他のソリューションが機能しない場合は、killall -q gpg-agent
を実行します。うまくいくかもしれません。
Ubuntu 18.04のPPAリポジトリでも同様のエラーが発生し、先月インターネットでさまざまな解決策を試した後、gpg-agentを偶然見つけて強制終了しました。その後、PPAリポジトリはSudo apt-get update
の実行時に更新を開始しました。セキュリティを危険にさらす可能性があることは知っていますが、PPAからのパッケージが必要な場合がありますが、GPGでは許可されません。その後、gpg-agentを再度起動すると、通常の状態に戻ります。