Como corrigir chaves GPG ausentes?

154

Acabei de instalar o Ubuntu 12.04 e adicionei alguns repositórios e, quando o fiz apt-get update, perdi a chave gpg.

O comando a seguir parece não funcionar para mim:

apt-get update 2> /tmp/keymissing; for key in $(grep "NO_PUBKEY" /tmp/keymissing |sed "s/.*NO_PUBKEY //"); do echo -e "\nProcessing key: $key"; gpg --keyserver subkeys.pgp.net --recv $key && sudo gpg --export --armor $key | apt-key add -; done

Como consertar esse problema?

Fih
fonte
1
Seria bom se as respostas a essa pergunta incluíssem por que esse erro está ocorrendo em primeiro lugar e o que fazer para evitá-lo no futuro.
Flimm
Resolvi meu problema usando o Y-ppa-manager. Obrigado a Ashu pela solução!
1
Solução detalhada com capturas de tela opensourceforgeeks.blogspot.in/2013/04/…
Aniket Thakur
1
Relacionados: askubuntu.com/q/13065/178596
Wilf

Respostas:

222

Gostei dessa solução, baixe novamente as chaves ausentes do servidor de chaves Ubuntu.

Para o Ubuntu

No meu caso

 Reading package lists... Done  
 W: GPG error: http://ppa.launchpad.net precise 
 Release: The following signatures couldn't be verified because the public key is not available: 
 NO_PUBKEY 2EA8F35793D8809A

Aqui está o comando para adicionar a chave ausente mencionada na mensagem de erro.

sudo apt-key adv --keyserver ha.pool.sks-keyservers.net --recv-keys 2EA8F35793D8809A

Então, pego a chave que falta 2EA8F35793D8809Ae peço ao keyserver.ubuntu.com que a adicione à lista de chaves que tenho no apt.

Para linux mint
Seu servidor de chave é um pouco diferentekeyserver.linuxmint.com

sudo apt-key adv --recv-key --keyserver keyserver.linuxmint.com "missing key"

Servidores de chave alternativos para tentar
keyserver.ubuntu.com

nelaaro
fonte
1
askubuntu.com/a/136735/10998 não funcionou para mim.
Nelaaro
5
Existem implicações de segurança para fazer isso? Basicamente, estou apenas baixando uma chave pública por http, certo?
Ajedi32
1
@iamcreasy, para provar às instalações do Ubuntu que os pacotes que você está instalando são seguros e livres de malware, cada pacote é assinado pelo servidor de chaves do ubuntu. Portanto, seu instalador verifica se o pacote que você está instalando é de uma fonte confiável e verificada. Eu não encontrei nenhuma documentação realmente boa sobre isso, mas isso pode ajudar [gpg doc] ( help.ubuntu.com/community/… )
nelaaro
1
Eu criei uma função que adiciona chaves necessárias adkeys (){ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys "$1";}E para remover as chaves duplicadas ou problemáticas estou para fazer isso:grep -ril "pattern" /etc/apt | sudo xargs rm -f
SergioAraujo
1
Eu recomendo --keyserver ha.pool.sks-keyservers.net. É um conjunto de servidores-chave de alta disponibilidade, o que aumenta muito sua chance de obter a chave desejada.
Robin como o pássaro
21

Existe um software chamado Como Y PPA managerele pode ajudar a corrigir erros de teclas GPG.
Y gerente de PPA

Para instalar -

sudo add-apt-repository ppa:webupd8team/y-ppa-manager  
sudo apt-get update  
sudo apt-get install y-ppa-manager    

Depois de instalá-lo, inicie-o advancee selecione "importar todas as chaves GPG ausentes"

Ashu
fonte
2
Você deve adicionar sudo a este comando! sudo apt-get...
Fih
Isso funcionou para mim também e estou muito impressionado com a interface limpa e fácil de usar do Y PPA Manager; foi uma descoberta agradável, obrigado Ashu.
CoalaWeb
Eu fiz o que você disse, mas nada aconteceu. Quero dizer que não consigo encontrar o aplicativo em nenhum lugar do menu.
Cristiana Nicolae
@CristianaNicolae Depois de instalado, você pode encontrar o Y PPA Manager em Aplicativos> Ferramentas do Sistema.
Ashu 13/10/2013
Desculpe Ashu, eu verifiquei e verifiquei. Ainda não consigo ver lá. Parece que ele está instalado em algum lugar do sistema, mas por alguns motivos, ele não aparece em nenhum lugar do menu.
Cristiana Nicolae
14

O download automático usando apt-key adv --recv-keyspode não funcionar atrás de um firewall.

Nesse caso, abra a página do Ubuntu Key Server no seu navegador e procure a string 0x<hexadecimal code of your missing key>.

Abra o link na seção pub . Salve o conteúdo da chave (de -----BEGIN PGP PUBLIC KEY BLOCK-----para -----END PGP PUBLIC KEY BLOCK-----) como um arquivo.

Então corra:

sudo apt-key add <file-with-saved-key>

Fonte: http://opensourceforgeeks.blogspot.in/2013/04/w-gpg-error-httpppalaunchpadnet-precise.html

Melebius
fonte
12

primeiro, digite o seguinte comando no terminal

 sudo rm /var/lib/apt/lists/* -vf

atualize seu sistema digitando o seguinte comando no terminal

 sudo apt-get update && sudo apt-get upgrade

depois disso, não haverá erros e tudo funcionará bem.

Bharat
fonte
thx para resposta. O sollution para o meu problema era preety muito mais simples: tipo sudo suantes de digitar meu comando acima
Fih
Embora isso tenha ajudado você, não sudo sué de forma alguma a abordagem correta - nesse caso sudo -s, teria feito o que você precisava.
precisa saber é
Eu acho que você quis dizer sudo rm /var/lib/apt/lists/* -rf(opção "r" em vez de "v")
Oliboy50
9
Usando os dois sudoe rmé perigoso. Usando os dois rme *é perigoso. Use os três no mesmo comando e um tubarão o morderá, ou seus arquivos.
JB.
Isso não está funcionando para mim.
WiSaGaN
9

Para Ubuntu 12.04 Precise: solução permanente

para esta mensagem de erro que ocorre após adicionar um novo repositório e atualizar a lista de repositórios. Isso ocorre devido a um servidor cujo endereço não é mais válido. Então, basta alterar o endereço para um bom.

  1. Abra o arquivo ~/.gnupg/gpg.confcom um editor de texto.

    No terminal: gedit ~/.gnupg/gpg.conf

  2. em seguida, nesse arquivo, encontre a seguinte linha em negrito (116ª linha) (que deve ser o padrão da seguinte maneira):

    [...]
    servidor de chaves hkp: //keys.gnupg.net
    # keyserver mailto: [email protected]
    # keyserver ldap: //keyserver.pgp.com

  3. adicione a seguinte linha em negrito, para finalmente obter o seguinte resultado:

    (adicione # à segunda linha da seguinte forma para comentar o endereço antigo)

    [...] servidor de chaves hkp: //keys.gnupg.net # keyserver mailto: [email protected] # keyserver ldap: //keyserver.pgp.com
    keyserver http://keyserver.ubuntu.com
    #

  4. Salve o arquivo e tente atualizar novamente:

    No terminal: sudo apt-get update

blitzter47
fonte
7

Com base na resposta nelaar:

sudo apt-get update 2>&1 1>/dev/null | sed -ne 's/.*NO_PUBKEY //p' |
while read key; do
    echo 'Processing key:' "$key"
    sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys "$key"
done

O script despeja todos os erros em um arquivo temporário e os percorre, importando as chaves ausentes.

Zafarella
fonte
6

A maneira mais fácil é com o Y PPA MAnager

sudo add-apt-repository ppa:webupd8team/y-ppa-manager
sudo apt-get update
sudo apt-get install y-ppa-manager 

Abra o Y PPA Manager do Dash

insira a descrição da imagem aqui

Digite sua senha de administrador

insira a descrição da imagem aqui

Clique duas vezes na opção avançada

insira a descrição da imagem aqui

Clique em Tentar importar todas as chaves GPG ausentes

insira a descrição da imagem aqui

Clique em Ok para corrigi-lo

Qasim
fonte
4

Primeiro, digite o seguinte comando no terminal

sudo rm /var/lib/apt/lists/* -vf

atualize seu sistema digitando o seguinte comando no terminal

sudo apt-get update && sudo apt-get upgrade

depois disso, não haverá erros e tudo funcionará bem.

DaniilPiter
fonte
2

O que funcionou para mim foi excluir a chave primeiro e depois reinstalar. Para conseguir isso, fiz o seguinte:

root@ > ~: sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 630239CC130E1A7FD81A27B140976EAF437D05B5

excluindo com

root@ > ~: sudo apt-key del 630239CC130E1A7FD81A27B140976EAF437D05B5

Em seguida, reinstale instalando

root@ > ~: sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 630239CC130E1A7FD81A27B140976EAF437D05B5
QuixRhyno
fonte
1

Eu encontrei o mesmo problema, ao adicionar um ppa ( ppa:nathandyer/vocal-stable), ele quebrou meus repositórios. Fui orientado pelo autor do Web Upd8, sobre como posso tentar corrigir isso, aqui estão os passos dele que me deram certo.

Faça backup de suas .gpgchaves, caso algo dê errado.

Vamos criar uma pasta na qual hospedaremos nosso backup.

  • mkdir ~/gpg-backups

    Isso faz backup de todos os arquivos na /etc/apt/trusted.gpg.d/pasta.

  • sudo cp /etc/apt/trusted.gpg.d/*.* ~/gpg-backups/

Agora, removeremos todas as .gpgchaves.

  • sudo rm /etc/apt/trusted.gpg.d/

  • sudo cp /etc/apt/trustdb.gpg ~/gpg-backups/

  • sudo rm /etc/apt/trustdb.gpg

em Software e atualizações, na guia "Autenticação", clique em "Restaurar padrões

Instale o y-ppa manager para importar todas as chaves GPG ausentes

sudo add-apt-repository ppa:webupd8team/y-ppa-manager
sudo apt-get update
sudo apt-get install y-ppa-manager

Referência :

blade19899
fonte
1
Uma linha parece conter um erro, deve estar sudo rm /etc/apt/trusted.gpg.d/*. *Não é possível omitir na EOL, pois você não pode remover diretórios não vazios com rma -ropção não especificada .-- Ah, e você pode matar 2 coelhos com uma pedra pela linha sudo mv /etc/apt/trustdb.gpg ~/gpg-backups/. Porque se você mover o arquivo, não precisará rmdo arquivo de origem posteriormente.
Syntaxerror 13/09/15
1

Eu queria corrigir automaticamente erros como esse em um script bash. Para qualquer pessoa interessada, isso deve funcionar:

sudo apt-get update 2> /tmp/keymissing
if [ -f /tmp/keymissing ]
then
    for key in $(grep "NO_PUBKEY" /tmp/keymissing |sed "s/.*NO_PUBKEY //")
        do 
        echo -e "\nProcessing key: $key"
        sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys $key
        sudo apt-get update
    done
    rm /tmp/keymissing
fi
user2304170
fonte
0

Se você tem algo parecido com isto:

# aptitude update
...
Ign http://archive.canonical.com wily/partner Translation-en_US
Fetched 422 kB in 3s (130 kB/s)
W: GPG error: http://ubuntu.volia.net wily InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 40976EAF437D05B5 NO_PUBKEY 3B4FE6ACC0B21F32

Antes de mais nada, tente:

# sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3B4FE6ACC0B21F32

A saída do último comando pode ser:

gpg: keyblock resource `/etc/apt/trusted.gpg.d/webupd8team_ubuntu_experiments.gpg': resource limit
gpg: keyblock resource `/etc/apt/trusted.gpg.d/webupd8team_ubuntu_gthumb.gpg': resource limit

Então, você precisa ir /etc/apt/trusted.gpg.d/e remover as chaves não utilizadas e depois repetir apt-key adveaptitude update

ipeacocks
fonte
0

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

towfiqpiash
fonte
-1

Esse problema ocorreu quando instalo o 12.04 usando as configurações em alemão. A lista de repositórios está usando repositórios espelho alemães por padrão. Se for esse o caso, você pode editar a lista de repositórios e alterar todos os repositórios espelho alemães para os repositórios padrão do Ubuntu.

Você pode usar o seguinte método:

sudo nano /etc/apt/sources.list

Pesquise e substitua no Nano usando Alt-r

Pesquisa (para substituir): /de.

Substituir com: /

Substituir tudo (pressione A)

Salvar arquivo Ctrl-x

Atualize seu sistema digitando o seguinte comando no terminal:

sudo apt-get update && sudo apt-get upgrade

Depois disso, não deve haver erros e tudo deve funcionar bem.

taufan
fonte
2
Isso realmente não responde à pergunta dos OPs, especialmente considerando que eles não estavam usando fontes.
Kevin Bowen