Como ignorar / ignorar as verificações de assinatura gpg do apt?


47

Todos os servidores-chave que visito estão atingindo o tempo limite. Preciso instalar pacotes sem verificar as assinaturas das chaves públicas. Existe uma maneira de ignorar todas as verificações de assinatura / ignorar todos os erros de assinatura ou enganar-se a pensar que a assinatura foi aprovada?

Estou muito ciente de que é perigoso fazer isso


1
Normalmente você instalaria a chave localmente ao mesmo tempo em que adiciona um repositório. Por que você precisa acessar os servidores de chaves?
janc

Respostas:


68

Passe a --allow-unauthenticatedopção para apt-getcomo em:

sudo apt-get --allow-unauthenticated upgrade

Da página do manual de apt-get:

--allow-não autenticado
Ignorar se os pacotes não podem ser autenticados e não prompt sobre ele. Isso é útil para ferramentas como pbuilder. Item de configuração: APT :: Get :: AllowUnauthenticated.

Você pode tornar essa configuração permanente usando seu próprio arquivo de configuração em /etc/apt/apt.conf.d/dir. O nome do arquivo pode ser 99myowne pode conter esta linha:

APT::Get::AllowUnauthenticated "true";

Dessa forma, você não precisa usar a opção sempre que quiser instalar o software. Nota: Eu não recomendo definir esta opção por padrão, ela ignora as verificações de assinatura que podem permitir que um adversário comprometa seu computador.


4
Para informações: funciona com, apt-getmas não com o aptcomando plain .
Tor Klingberg

2
Ubuntu 16.0 LTS. Isso não funciona / tem efeito zero em nada
wvxvw

7

Se você está tentando obter um pacote de um repositório onde eles empacotaram as chaves e incluí-las no repositório e em nenhum outro lugar, pode ser muito irritante fazer o download e instalar o pacote key / keyring usando o dpkg, e é muito difícil fazê-lo. de uma maneira facilmente programável e repetível.

O script abaixo não é recomendado se você pode instalar as chaves de um servidor de chaves ou baixá-las de uma fonte confiável via https, mas se você não tiver QUALQUER outra maneira, poderá usá-lo.

echo "deb http://your.repo.domain/repository/ $(lsb_release -c -s) universe" | sudo tee /etc/apt/sources.list.d/your-repo-name.list

sudo apt -o Acquire::AllowInsecureRepositories=true \
-o Acquire::AllowDowngradeToInsecureRepositories=true \
update

## if the 'apt update' above fails it is likely due to previously
## having the GPG key and repository on the system, you can clean
## out the old lists with `sudo rm /var/lib/apt/lists/your.repo.domain*`

apt-get -o APT::Get::AllowUnauthenticated=true install repo-keyring-pkgname

## If you ever run `sudo apt-key del your-repos-keyID`
## you may have to `sudo apt remove --purge repo-keyring-pkgname`
## Update should run without the GPG warnings now that the key is installed

apt-get update
apt-get install somepkg-from-repo

Originalmente, juntei isso porque o i3 no repositório sur5r faz isso, mas descobri que as chaves deles estão na lista keyserver.ubuntu.com, para que eu possa sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E3CA1A89941C42E6evitar todos os problemas extras do pacote.


Vim aqui por causa da questão i3 - sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E3CA1A89941C42E6resolvido! Muito obrigado!
Benedikt Köppel

6

Talvez você possa tentar criar o arquivo /etc/apt/apt.conf (ele será lido se você o criar) e inserir este código:

APT{Ignore {"gpg-pubkey"; }};

5
Isso não funciona para mim. Mas funciona quando eu adicioneiAPT { Get { AllowUnauthenticated "1"; }; };
php-codificador

Ubuntu 16.0 LTS: não tem efeito sobre o que o apt-get faz.
wvxvw 2/01

1

Crie /etc/apt/apt.conf.d/99allow_unauthcom este conteúdo:

APT { Get { AllowUnauthenticated "1"; }; };

Graças a PHP-codificador 's comentário .


0

Corri no mesmo problema com um servidor debian antigo. Eu não poderia fazer um evento

apt-get update

que me deu o seguinte erro:

E: Release file expired, ignoring http://archive.debian.org/debian/dists/squeeze-lts/Release (invalid since 1183d 0h 2min 51s)

Finalmente, a solução foi adicionar isso:

Acquire::Check-Valid-Until false;

para /etc/apt/apt.conf (crie-o se não existir). Depois disso, o erro se tornou um aviso simples.

Acho que também pode funcionar no ubuntu.

Por favor, note que é totalmente inseguro.


Se é inseguro, sugiro que você não o publique.
Yufenyuy Veyeh Dider 11/06

A maneira segura de fazer isso é atualizar a distribuição. Em alguns casos complicados de clientes, você não tem como atualizar. E como toda a pergunta foi iniciada com este aviso: 'Estou muito ciente de que é perigoso fazer isso', pensei que minha contribuição foi apropriada. Caso contrário, eu posso removê-lo.
Gnusam 12/06
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.