Como corrijo o erro GPG “NO_PUBKEY”?

298

Eu adicionei alguns repositórios extras com o programa Software Sources. Mas quando eu recarregar o banco de dados de pacotes, recebo um erro como o seguinte:

% bl0ck_qu0te%

Eu sei que posso consertá-lo usando apt-key em um terminal, de acordo com a documentação oficial do Ubuntu. Mas eu gostaria de fazer isso graficamente. Existe uma maneira de fazer isso sem usar um terminal?

    
por Agmenor 13.11.2010 / 21:27

11 respostas

191

De longe, a maneira mais simples de lidar com isso agora é com o Y-PPA-Manager (que agora integra o script launchpad-getkeys com uma interface gráfica).

  1. Para instalá-lo, primeiro adicione o repositório webupd8 para este programa:

    sudo add-apt-repository ppa:webupd8team/y-ppa-manager
    
  2. Atualize sua lista de softwares e instale o Y-PPA-Manager:

    sudo apt-get update
    sudo apt-get install y-ppa-manager
    
  3. Execute y-ppa-manager (por exemplo, digite y-ppa-manager e pressione a tecla Enter).

  4. Quando a janela principal do y-ppa-manager aparecer, clique em "Avançado".

  5. Na lista de tarefas avançadas, selecione "Tentar importar todas as chaves GPG ausentes" e clique em OK.

    Você terminou! Como a caixa de diálogo de aviso diz quando você inicia a operação, pode demorar um pouco (cerca de 2 minutos para mim) dependendo de quantos PPAs você tem e da velocidade da sua conexão.

por monotasker 04.12.2013 / 16:52
438

Execute os seguintes comandos no terminal

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys <PUBKEY>

onde <PUBKEY> é sua chave pública ausente para o repositório, por exemplo 8BAF9A6F .

Em seguida, atualize

sudo apt-get update

MÉTODO ALTERNATIVO:

sudo gpg --keyserver pgpkeys.mit.edu --recv-key  <PUBKEY>
sudo gpg -a --export <PUBKEY> | sudo apt-key add -
sudo apt-get update

Observe que, ao importar uma chave como essa usando apt-key , você está informando ao sistema que confia na chave que está importando para assinar o software que seu sistema estará usando. Não faça isso, a menos que tenha certeza de que a chave é realmente a chave do distribuidor do pacote.

    
por karthick87 28.11.2010 / 19:49
38

Acontece quando você não tem uma chave pública adequada para um repositório.

Para resolver este problema, use este comando:

gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv 9BDB3D89CE49EC21

que recupera a chave do servidor de chaves do ubuntu. E então isso:

gpg --export --armor 9BDB3D89CE49EC21 | sudo apt-key add -

que adiciona a chave para apt chaves confiáveis.

A solução pode ser encontrada aqui & amp; aqui & amp; aqui .

    
por Pedram 28.03.2011 / 00:31
32

Você precisa obter e importar a chave.

Para obter a chave de um PPA, visite a página do Launchpad do PPA. Em cada página do PPA no Launchpad, você encontrará este link (2), depois de clicar em 'Detalhes técnicos sobre este PPA' (1):

Siga-oecliquenolinkdaIDdachave(3):

Salve a página, este é o seu arquivo-chave.

Agora é hora de importá-lo:

  • Applications > Software Center ,
  • Edit > Software sources... ,
  • Digite sua senha
  • Vá para a guia Authentication e clique em Import Key File... , finalmente
  • Selecione o arquivo de chaves salvo e clique em OK .

É isso.

    
por htorque 13.11.2010 / 22:04
11

apt só pode manipular 40 chaves em /etc/apt/trusted.gpg.d. 41 chaves e você receberá o erro GPG "sem chave pública encontrada", mesmo se você passar por todas as etapas para adicionar a chave ausente (s).

Verifique se há alguma chave não usada neste arquivo a partir de ppa (s) que você não usa mais. Se todos estiverem em uso, considere remover alguns ppa (s) junto com os arquivos de chaves correspondentes em /etc/apt/trusted.gpg.d

Além disso, usando

sudo apt-key adv

É considerado um risco de segurança e não é recomendado porque você está " solapando todo o conceito de segurança, pois não é uma forma segura de receber chaves por várias razões (como: hkp é um protocolo em texto simples, keyides curtos e longos podem ser forjados,…) ". link

Eu acredito que a maneira correta de adicionar chaves ausentes (por exemplo, 1ABC2D34EF56GH78) é

gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv 1ABC2D34EF56GH78
gpg --export --armor 1ABC2D34EF56GH78 | sudo apt-key add -
    
por mchid 08.08.2014 / 00:33
8

Existe um minúsculo script empacotado no WebUpd8 PPA que eu vou linkar como um único download .deb para que você não tenha que adicionar o PPA inteiro - que importa automaticamente todas as chaves GPG ausentes.

Faça o download e instale Launchpad-getkeys (ignore a versão em sua versão, ele funciona com todas as versões do Ubuntu do Karmic até Oneiric). Uma vez instalado, abra um terminal e digite:

sudo launchpad-getkeys

Se você está por trás de um proxy, as coisas são um pouco mais complicadas, então veja isto para mais informações

    
por Alin Andrei 05.06.2011 / 22:15
4

Eu enfrentei o mesmo problema ao instalar o Heroku. O link abaixo resolveu meu problema -

link

Após corrigir o problema de NO_PUBKEY , a edição abaixo permaneceu

W: GPG error: xhttp://toolbelt.heroku.com ./ Release: The following signatures were invalid: BADSIG C927EBE00F1B0520 Heroku Release Engineering <[email protected]>

Para consertar, executei os seguintes comandos no terminal:

sudo -i  
apt-get clean  
cd /var/lib/apt  
mv lists lists.old  
mkdir -p lists/partial  
apt-get clean  
apt-get update  

Fonte - Link para resolvê-lo

    
por dennyac 30.01.2013 / 18:12
4

Verifique se você tem apt-transport-https instalado:

dpkg -s apt-transport-https > /dev/null || bash -c "sudo apt-get update; 
sudo apt-get install apt-transport-https -y" 

Adicionar repositório:

curl https://repo.skype.com/data/SKYPE-GPG-KEY | sudo apt-key add - 
echo "deb [arch=amd64] https://repo.skype.com/deb stable main" | sudo tee /etc/apt/sources.list.d/skype-stable.list 

Instale o Skype para Linux:

sudo apt-get update 
sudo apt-get install skypeforlinux -y

Fonte: link

    
por Eduardo Cuomo 27.05.2017 / 22:00
3

Geralmente, o método a seguir deve funcionar para todos os repositórios. Em primeiro lugar, procure, com a ajuda de um mecanismo de busca, um texto no site do provedor do programa com a seguinte aparência:

-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.1 (GNU/Linux)
[...]
-----END PGP PUBLIC KEY BLOCK-----

Esse texto é exibido, por exemplo, no link . Copie a passagem, cole-a em um arquivo vazio criado em sua área de trabalho. Isso resulta no arquivo de chave.

Continue com a importação da chave:

  • Aplicativos > Centro de Sofware
  • Editar > Fontes de software ..., digite a senha
  • guia Autenticação, clique em "Importar arquivo-chave ..."
  • Selecione o arquivo de chaves salvo e clique em "Ok".

Você pode agora remover o arquivo de chaves criado anteriormente.

    
por Agmenor 13.11.2010 / 22:43
2

Bom! Eu finalmente encontrei o caminho!

Eu testei todos os métodos para corrigir o erro GPG NO_PUBKEY e nada funciona para mim.

Eu deletei todo o conteúdo da pasta /etc/apt/trusted.gpg.d

cd /etc/apt/trusted.gpg.d
sudo rm -R *
sudo apt-get update

E eu uso o método Y-PPA-Manager porque estou com preguiça de criar todos os pubkey manualmente (muitos): link

execute o sudo apt-get update novamente e finalmente tudo funciona muito bem agora! Tanques!

Fonte Baseada: post # 17 no link

    
por NeurOSick 08.04.2015 / 15:36
1

Eu tive o mesmo problema com o cliente Updater do DynDNS.

Acontece que eram apenas chaves expiradas.

Reinstalar o software (fazer o download de um novo .deb do site e depois usar o Centro de Software para reinstalar) corrigiu o problema.

Mensagem de erro para referência:

W: GPG error: http://cdn.dyn.com stable/ Release: The following signatures were invalid: KEYEXPIRED 141943.......
    
por Cranky 08.01.2015 / 17:53