“Tidak ada kunci publik yang tersedia” di pembaruan apt-get

133

Saat melakukan apt-get update, saya mendapatkan kesalahan berikut:

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
Orang Brasil itu
sumber
2
... dan senar yang Anda hindari adalah bagian yang penting. Itu akan memungkinkan kami mengidentifikasi kunci mana yang Anda lewatkan (dengan asumsi menginstal paket keyring — lebih disukai dari media tepercaya — yang disarankan ruda tidak membantu)
derobert
1
Anda tidak harus membiarkan kucing berjalan di atas keyboard seperti itu. :-) ⁠
G-Man

Jawaban:

173

Jawaban lain akan berfungsi, atau tidak, tergantung pada apakah kunci '8B48AD6246925553' hadir dalam paket yang ditunjukkan.

Jika Anda memerlukan kunci, Anda harus mendapatkan kunci itu, dan di mana menemukannya, ada di server kunci (sangat mungkin server kunci mana pun akan melakukannya):

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 8B48AD6246925553
mariotomo
sumber
Ini berhasil juga untuk saya dan bukan jawaban lain di sini ..
Sai Kiran
@ starbeamrainbowlabs sekarang! =)
Orang Brasil itu
@ThatBrazilianGuy: D
starbeamrainbowlabs
4
Apakah ada cara untuk menentukan apakah kunci yang diterima adalah legal sehingga saya dapat melakukan operasi berbahaya seperti menambahkan kepercayaan global ke beberapa kunci arbitrer? Apakah ada cara untuk memeriksa kredibilitas kunci setelah diterima? Apa langkah-langkah yang harus dilakukan untuk melakukan verifikasi kunci? Misalnya, satu-satunya yang Anda miliki adalah ftp-master.debian.org/keys/ziyi_key_2002.asc jadi bagaimana Anda bisa mendapatkan kunci terbaru tanpa memutus rantai kepercayaan?
Tino
1
@ThatBrazilianGuy: Fakta bahwa pertanyaan Anda tidak memberi Anda hak untuk merusak jawaban.
G-Man
76

Saya sarankan Anda mengikuti jawaban @ mariotomo daripada langkah-langkah di bawah ini:


Menurut Tidak ada kunci publik yang tersedia untuk ID kunci berikut , ini akan memperbaikinya:

sudo aptitude install debian-archive-keyring

Referensi

Orang Brasil itu
sumber
8 digit hex terakhir dibagikan dengan ini, jadi mungkin mengeluh tentang wheezy. Sayangnya OP telah memutuskan bahwa: pub 4096R / 46925553 2012-04-27 [kedaluwarsa: 2020-04-25] uid Kunci Penanda Otomatis Arsip Debian (7.0 / wheezy) <[email protected]>
Martin Dorey
5
Apakah debian-keyringbenar-benar dibutuhkan? Itu berhasil bagi saya dengan adil debian-archive-keyring.
x-yuri
Tidak mengherankan, angka heks yang berbeda mungkin memerlukan solusi yang berbeda. Saya menaruh tanda kutip di sekitar angka dalam pencarian Google saya, untuk memaksakan pencarian kata demi kata untuk angka itu, dan saya mendarat di halaman ini, yang memperbaiki masalah saya: reddit.com/r/linux4noobs/comments/4grdo7/… (jawaban @ mariotomo mungkin berhasil juga — saya tidak mencoba)
Michael Scheper
debian-keyringyang tidak diperlukan.
x-yuri
38

Saya merekomendasi:

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

Ini lebih baik daripada pendekatan lain karena tidak menginstal debian-keyring, yang besar dan 99% dari waktu tidak perlu.

Greg Alexander
sumber
1
Ini yang saya butuhkan - bekerja sangat baik untuk saya!
Harperville
Bekerja seperti pesona!
Wilbeibi
1
Ini adalah solusi yang lebih baik bagi saya karena cocok dengan wadah Docker yang lebih baik. Namun perhatikan bahwa (setidaknya di Docker) Anda harus menginstal hanya paket ini terlebih dahulu, kemudian lakukan yang kedua apt-get update, kemudian instal paket yang Anda inginkan.
Malvineous
Debian 10: Peringatan: 'pembaruan apt-key' sudah usang dan tidak boleh digunakan lagi! Catatan: Dalam distribusi Anda perintah ini adalah no-op dan karena itu dapat dihapus dengan aman
aexl
Bahkan, Anda mungkin perlu menginstal debian-archive-keyring bahkan jika Anda telah menginstal debian-keyring pada versi terbarunya
Ángel
17

Kesalahan Tidak ada kunci publik yang tersedia untuk ID kunci berikut menunjukkan masalah keamanan serius : paket sistem operasi tidak dapat diperiksa integritasnya dengan kunci publiknya, karena kunci publiknya tidak ada.

Jika pesannya adalah:

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

Anda bisa menggunakan perintah ini untuk mencari tahu repositori mana yang menggunakan kunci:

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

Yang dalam contoh ini adalah repositori Google untuk Chrome:

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

Jika Anda mempercayai Google, pemerintahnya, dll., Anda harus mencari tahu di mana kuncinya dan menambahkannya dengan:

wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | apt-key add -
Ivan Ogai
sumber
Diperbaiki untuk saya :) Terima kasih! Tapi penasaran saja, apa yang salah? Apa yang dilakukan perintah pertama, dan apa yang dilakukan perintah kedua? Haruskah ini menyelesaikan semua masalah? Masalah saya juga dengan Google Chrome.
Rohan
Dan apakah perintah pertama mengubah sesuatu dengan gpg? Dikatakan itu menciptakan beberapa file conf gpg.conf, dan saya tidak tahu apakah saya menginginkannya.
Rohan
Yang pertama mencari kunci dalam daftar paket Anda untuk melihat paket yang menyinggung. Yang kedua mengunduh kunci dan menambahkannya ke sistem Anda. Perintah pertama tidak berguna dalam kasus ini, tetapi itu bagus sebagai pendekatan umum.
Marco Sulla
3

Saya menghadapi masalah yang sama di Linux Mint (Kernel Versi 3.13.0-24) dan saya bisa menyelesaikannya menggunakan perintah:

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

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

Poin yang perlu diperhatikan:

1) Perintah dieksekusi secara berurutan 2) Perintah dieksekusi sebagai pengguna root

Terima kasih atas jawaban ini .

Ankur Kumar
sumber
1

Sebagai alternatif:

$ sudo apt-get install debian-keyring debian-archive-keyring
$ sudo apt-key update
abdiansah.wordpress.com
sumber
6
Harap jangan mengiklankan blog Anda dalam jawaban Anda. Untuk itulah bio Anda digunakan.
slm
1

Jawaban saya adalah sedikit peningkatan (IMHO, YMMV) di @mariotomo (yang saya undian) di bash scriptlet berikut

  • juga menggunakan gpg
  • parameterisasi lebih lanjut
  • (juga menggunakan server kunci yang berbeda, meskipun dalam hal ini saya curiga tidak ada bedanya)

Anda juga dapat mengomentari evalbaris untuk "dry-run": scriptlet kemudian hanya akan menunjukkan kepada Anda apa yang ingin dilakukan, tanpa benar-benar melakukannya. Pastikan untuk mengubah nilai NO_PUBKEYsetiap kali Anda menggunakan ini (Anda juga dapat mengubah yang KEYSERVERdiinginkan):

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
TomRoche
sumber
0

Jalankan killall -q gpg-agentjika solusi lain tidak berhasil. Mungkin berhasil.

Saya mendapatkan kesalahan yang sama untuk repositori PPA di Ubuntu 18.04 dan setelah mencoba berbagai solusi di internet untuk bulan lalu, saya hanya menemukan agen gpg dan membunuhnya. Kemudian repositori PPA mulai memperbarui saat melakukan sudo apt-get update. Saya tahu itu mungkin membahayakan keamanan, tetapi kadang-kadang Anda membutuhkan paket dari PPA, dan GPG tidak membiarkan Anda. Kemudian, Anda memulai agen gpg lagi, dan semuanya kembali normal.

MSharq
sumber
-1

Ini bekerja untuk saya:

Obat cepat:

sudo rm -f /etc/apt/trusted.gpg

( Sumber )

Jakob
sumber