Resolvendo erro “Key is stored in legacy trusted.gpg”

A partir do Ubuntu 22.04 Beta em diante, repositórios com chaves trusted.gpg não seguramente armazenadas causarão erros. Veja como corrigir!


| Se você apoia nosso site, desative o AdBlock quando visitá-lo, inclusive em Mobile!
Os anúncios são poucos e não invasivos. Se quiser contribuir com nosso trabalho, clique em qualquer banner de sua preferência, exceto dos Parceiros. 
Mais detalhes clicando aqui.


1. Introdução

No Ubuntu por padrão, para quem usa PPA’s, normalmente há uma sequencia de comandos para adicionar os repositórios não-oficiais. A exemplo, vou usar o repositório do WINE HQ Staging fornecido pelo OpenSUSE para pegar o WINE mais recente, inclusive versões rc e staging:

  1. $ echo “deb https://download.opensuse.org/repositories/Emulators:/Wine:/Debian/xUbuntu_22.04 ./” | sudo tee /etc/apt/sources.list.d/wine-obs.list
  2. $ wget -O- -q https://download.opensuse.org/repositories/Emulators:/Wine:/Debian/xUbuntu_22.04/Release.key | sudo apt-key add –
  3. $ sudo apt install winehq-staging

O primeiro comando adiciona o repositório propriamente dito, aonde os pacotes .deb ficam.

O segundo comando adiciona a chave trusted.gpg, é com ela que o sistema confia que o repositório é legítimo e seus dados não foram maculados por pessoas má intencionadas.

E o terceiro comando adiciona o pacote em si.

Até a data desta publicação, o repositório estava no ar, porém o pacote winehq-staging ainda não estava disponibilizado para instalação. Quem estiver usando o Ubuntu 22.04 Beta, aguarde mais algum tempo até que o repositório seja alimentado.

Até o Ubuntu 21.10, esse procedimento ocorre sem maiores problemas na adição do trusted.gpg.
Mas no 22.04, as coisas vão mudar e “warnings” vão surgir ao tentar atualizar o sistema com PPA’s cujas chaves foram instaladas de forma automática mas com métodos obsoletos:

W: https://download.opensuse.org/repositories/Emulators:/Wine:/Debian/xUbuntu_22.04: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details.

Você pode ignorar o Warning, ou resolver a questão deixando seu sistema adequado!

2. Deprecated

Ao analisar o MAN file do apt-key, há uma sessão que explicita a obsolescência do método de adição da chave:

Except for using apt-key del in maintainer scripts, the use of apt-key
is deprecated. This section shows how to replace existing use of
apt-key.

If your existing use of apt-key add looks like this:

wget -qO- https://myrepo.example/myrepo.asc | sudo apt-key add –

Then you can directly replace this with (though note the recommendation
below):

wget -qO- https://myrepo.example/myrepo.asc | sudo tee
/etc/apt/trusted.gpg.d/myrepo.asc

Make sure to use the “asc” extension for ASCII armored keys and the
“gpg” extension for the binary OpenPGP format (also known as “GPG key
public ring”). The binary OpenPGP format works for all apt versions,
while the ASCII armored format works for apt version >= 1.4.

Ou seja, agora as chaves não podem ser adicionadas com “sudo apt-key add -” como antes, por padrão, mas sim em “/etc/apt/trusted.gpg.d/myrepo.asc”.

Não há problema quanto ao formato da chave, se é .asc ou se é .gpg, o que muda mesmo é o destino delas.

3. Adicionando

No exemplo do WINE, a adição da chave será feita com o comando alterado para o seguinte:

$ wget -qO- https://download.opensuse.org/repositories/Emulators:/Wine:/Debian/xUbuntu_22.04/Release.key | sudo tee /etc/apt/trusted.gpg.d/winehq.asc

Isso basta para que o erro desapareça!
Após isso, apt update não deve retornar mais Warnings.

Caso ainda tenha problemas, seguem abaixo algumas opções para resolução do problema!

3.1 Removendo

Caso o erro persista, o Warning continue, remova a chave antiga do local antigo.

Primeiro com o seguinte comando, identifique a localização da chave:

$ sudo apt-key list

Você vai listar as chaves no sistema. Sempre olhe o começo do resultado, aonde começa com:

/etc/apt/trusted.gpg

Lá estão as chaves legacy que causam o warning. O objetivo é ter chaves dentro de /etc/apt/trusted.gpg.d/ isoladamente!

Procure pela referente á do pacote WINE, será algo semelhante a:

pub rsa2048 2018-10-09 [SC] [expira: 2023-02-11]
31CF B0B6 5659 B5D4 0DEE C98D DFA1 75A7 5104 960E
uid [ desconhecida] Emulators OBS Project <Emulators@build.opensuse.org>

Anote os 8 últimos caracteres do código hexadecimal da chave, que no caso é 5104960E.
Remova a referida chave com o seguinte comando:

$ sudo apt-key del 5104960E

Após isso, rode um apt update novamente e verifique se o Warning desapareceu.
Se o erro persistir, refaça o comando do item 3. acima.

3.2 Corrigindo

Algo que pode ocorrer é você ter um pacote instalado no sistema e quiser corrigir as chaves já instaladas.

Em outro exemplo, temos o Microsoft Edge. Ele também aplica o método obsoleto para adicionar chaves ao sistema, vai instalar normalmente mas vai gerar o Warning quando você atualizar o sistema depois.

Para corrigi-lo, apague a chave do sistema conforme mencionado no item 3.1 acima, só que desta vez procurando pela chave do Microsoft Edge. Aqui é semelhante a:

pub rsa2048 2015-10-28 [SC]
BC52 8686 B50D 79E3 39D3 721C EB3E 94AD BE12 29CF
uid [ desconhecida] Microsoft (Release signing) <gpgsecurity@microsoft.com>

Após isso, execute este comando que vai pegar a chave do repositório oficial da Microsoft Edge e instalar a mesma no novo local:

$ wget -qO- https://packages.microsoft.com/keys/microsoft.asc | sudo tee /etc/apt/trusted.gpg.d/microsoft.asc

Observe o padrão no comando: quase sempre um wget -qO- com o link do site aonde a chave está, concatenado com a barra em pé | ao comando sudo tee que vai jogar a chave na pasta trusted.gpg.d.

Após isso, execute o apt update que o Edge continuará recebendo atualizações normalmente e o Warning será resolvido!

3.3 trusted.gpg incompatível

Caso você veja um erro de chave trusted.gpg incompatível, é porque precisa converter o formato de texto da chave para um formato próprio do novo sistema. Pode observar que os arquivos dentro de /etc/apt/trusted.gpg.d/ são binários e não textos comuns!

Para isso, uma forma direta, é seguir este modelo:

$ wget -qO- https://deb.opera.com/archive.key | gpg –dearmor | sudo dd of=/etc/apt/trusted.gpg.d/opera-browser.gpg

Assim, a chave chegará importada, convertida para gpg e depois enviada para a pasta /etc/apt/trusted.gpg.d/.
Edite a linha de comando conforme a chave que você vai utilizar!

3.4 Reaplicação

Algumas chaves poderão apresentar erros, procure outras versões como .asc no repositório desejado e faça variações no comando. Alguns pacotes podem não fornecer a chave adequada, e portanto não há muito o que ser feito com relação a elas.

Outros casos, basta remover todas as chaves do sistema e adicionar novamente o repositório que as chaves serão importadas e o erro também poderá desaparecer.

3.5 Convertendo e Exportando

Ainda é possível exportar a chave e convertê-la diretamente para o diretório necessário. Para isso identifique qual a chave conforme item 3.1, porém em vez de realizar o passo de deletar a chave, você apenas exporta ela e converte para o diretório trusted:

$ sudo apt-key export 6840A128 | sudo gpg --dearmour -o /etc/apt/trusted.gpg.d/EXEMPLO.gpg

Em EXEMPLO coloque o nome da aplicação que requer a chave. Use um nome facil, a chave será detectada automaticamente.
Após isso, dê apt update e veja se o Warning desaparece. Se persistir, tente remover a chave conforme o item 3.1 acima.

NUNCA esqueça do formato .gpg no final do arquivo! Ou o sistema não vai reconhecer a chave.

4. Conclusão

Esse tipo de WARNING não é absolutamente algo grave que deva causar preocupação. Mas é um alerta de que a situação do sistema está inadequada aos novos métodos e configurações.

Considerando que o Ubuntu LTS – e seus sabores – são sistemas voltados para usuários finais, prezando estabilidade e segurança, é pertinente que tal erro seja corrigido para que tal preceito se mantenha!

#UrbanCompassPony

3 comentários em “Resolvendo erro “Key is stored in legacy trusted.gpg””

Deixe um comentário