GPG e certificados

Ao tentar atualizar o sistema ou instalar algum novo pacote (após ativar repositórios adicionais), você receberá um erro similar a esse:

Ele indica que o sistema não possui a chave GPG de autenticação para o repositório adicionado, problema que podemos resolver manualmente.

O GPG é um sistema de encriptação composto por duas chaves: uma chave pública, que é distribuída abertamente, e uma chave privada, que é secreta. A chave privada pode ser utilizada para “assinar” arquivos, cuja autenticidade pode ser comprovada usando a chave pública. Isso é feito através de um truque matemático: a chave privada é uma espécie de equação extremamente complexa, que embaralha o conteúdo dos arquivos. A chave pública é um antídoto para ela, que permite reverter os dados a seu estado original. É impossível, entretanto, descobrir o conteúdo da chave privada usando a chave pública e, devido à sua complexidade, é também impossível fazê-lo via força bruta.

Do Ubuntu 6.06 em diante, o apt-get passou a operar em modo seguro, onde o desenvolvedor usa sua chave GPG privada para assinar seus pacotes e o apt-get usa a chave pública para verificar se o pacote que está sendo instalado não sofreu modificações. Este é um processo extremamente seguro, que visa ter certeza de que o pacote que está sendo instalado na sua máquina é exatamente o mesmo que foi disponibilizado pelo desenvolvedor, eliminando qualquer possibilidade de alguém de má-fé alterar o conteúdo pelo caminho.

Este é um nível se segurança que não possui similar no mundo Windows. Mesmo que alguém consiga invadir o servidor onde os pacotes estão hospedados, ou consiga dar upload de pacotes falsos usando uma senha roubada, não terá como falsificar também a assinatura dos pacotes, fazendo com que você receba o alerta ao tentar instalar os pacotes afetados e o problema seja detectado instantaneamente.

O link para a chave GPG fica normalmente em posição visível no site do projeto. No caso do Medibuntu, por exemplo, o arquivo é o “http://packages.medibuntu.org/medibuntu-key.gpg“.

Existem duas maneiras de instalar a chave. A primeira é baixar o arquivo manualmente (você precisará geralmente usar o wget ou outro gerenciador de downloads, já que o Firefox o exibe como texto, em vez de oferecer a opção de baixar) e usar a opção Autenticação > Importar Arquivo Chave” dentro do Canais de Software para adicionar a chave:

Outra opção é adicionar a chave via linha de comando, usando “gpg” e o “apt-key”. Os comandos são um pouco longos, mas a vantagem nesse caso é que você não precisa procurar o arquivo da chave, já que ele é baixado automaticamente pelo próprio GPG.

O primeiro passo é abrir um terminal e rodar o “sudo apt-get update”. Ele retornará um erro similar ao do gerenciador de atualizações, especificando o número da chave:

W: Erro GPG: http://packages.medibuntu.org intrepid Release: As assinaturas a seguir não puderam ser verificadas devido à chave pública não estar disponível: NO_PUBKEY 2EBC26B60C5A2783

Para adicioná-la, use os dois comandos a seguir, especificando o número da chave, que você pode colar usando o botão central do mouse. Na verdade, a identificação da chave são apenas os 8 dígitos finais, mas não faz diferença se você simplesmente copiar o número inteiro:

# gpg --keyserver subkeys.pgp.net --recv-keys 2EBC26B60C5A2783
# gpg --export --armor 2EBC26B60C5A2783 | apt-key add -

É mais fácil executar os dois comandos diretamente como root (defina a senha usando o “sudo passwd” e logue-se como root usando o “su”), já que o GPG tem dificuldade em acertar o path quando executado através do sudo.

O primeiro comando se encarrega de baixar a chave a partir do servidor do pgp.net, enquanto o segundo faz a importação. Note que é usado um pipe ( | ) para que a chave exportada pelo GPG seja lida pelo apt-key.

No caso específico do Medibuntu, existe uma opção mais prática para adicionar a chave, que é simplesmente instalar o pacote “medibuntu-keyring”, que se encarrega de instalar a chave do repositório:

$ sudo apt-get install medibuntu-keyring

Como pode imaginar, este pacote foi criado para simplificar a configuração do repositório por parte de novos usuários, uma vez que o repositório é usado por 7 em cada 10 usuários do Ubuntu. Entretanto, você ainda precisará seguir estes passos manuais ao adicionar outros repositórios.

Apesar dos pesares, a principal vantagem de adicionar os repositórios extras na configuração, em vez de simplesmente baixar os pacotes desejados manualmente, é que os pacotes passam a ser incluídos nas atualizações do sistema, permitindo que você tenha acesso às atualizações. Eles também permitem que o sistema instale eventuais dependências automaticamente, simplificando muito a instalação. Outra vantagem é que outros pacotes disponíveis no repositório ficam disponíveis para quando precisar deles.

Sobre o Autor

Redes Sociais:

Deixe seu comentário

X