“nenhuma chave pública disponível” no apt-get update

115

Ao executar apt-get update , recebo o seguinte erro:

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
    
por That Brazilian Guy 14.05.2013 / 19:37

8 respostas

152

As outras respostas funcionarão, ou não, dependendo se a chave '8B48AD6246925553' está presente nos pacotes que indicam.

Se você precisa de uma chave, você tem que obter essa chave, e onde encontrá-la, ela está em um servidor de chaves (muito provavelmente qualquer servidor de chaves servirá):

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 8B48AD6246925553
    
por 26.05.2015 / 21:10
74

Recomendo que você siga a resposta do @mariotomo em vez das etapas abaixo:

De acordo com Não há chave pública disponível para a seguinte ID de chave , isso corrigirá:

sudo aptitude install debian-keyring debian-archive-keyring

Referências

por 14.05.2013 / 19:39
34

Eu recomendo

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

Isto é melhor que outras abordagens porque não instala o "debian-keyring", que é grande e 99% do tempo desnecessário.

    
por 12.06.2015 / 16:54
17

O erro Não há chave pública disponível para os seguintes IDs de chave indica um grave problema de segurança : um pacote do sistema operacional não pode ser verificado quanto à integridade com sua chave pública , porque sua chave pública está faltando.

Se a mensagem fosse:

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

Você pode usar este comando para descobrir qual repositório usa a chave:

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

O que neste exemplo é o repositório do Google para o Chrome:

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

Se você confia no Google, no seu governo, etc., deve descobrir onde está a chave e adicioná-la a:

wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | apt-key add -
    
por 28.04.2016 / 12:42
3

Eu enfrentei o mesmo problema no Linux Mint (Versão do Kernel 3.13.0-24) e consegui resolvê-lo usando os comandos:

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

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

Pontos a serem observados:

1) Os comandos foram executados em ordem 2) Os comandos foram extintos como usuário root

Cortesia esta resposta.

    
por 29.06.2016 / 11:16
1

Como alternativa:

$ sudo apt-get install debian-keyring debian-archive-keyring
$ sudo apt-key update
    
por 06.12.2014 / 03:17
1

Minha resposta é uma pequena atualização (IMHO, YMMV) no @mariotomo (que eu inventei) no seguinte script

  • também usa gpg
  • parametriza mais
  • (também usa um servidor de chaves diferente, embora neste caso eu suspeite que faz pouca diferença)

Você também pode comentar a linha eval para um "dry-run": o scriptlet mostrará apenas o que ele pretende fazer, sem realmente fazer isso. Só não se esqueça de alterar o valor de NO_PUBKEY toda vez que você usar isso (você também pode alterar KEYSERVER conforme desejado):

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
    
por 29.04.2016 / 02:36
-1

Isso funcionou para mim:

Quick remedy:

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

( Fonte )

    
por 20.07.2017 / 23:31

Tags