¿Cómo omito / ignoro las comprobaciones de firma gpg de apt?

47

Todos los servidores de claves que visito se están agotando. Necesito instalar paquetes sin verificar las firmas de las claves públicas. ¿Hay alguna manera de omitir todas las comprobaciones de firma / ignorar todos los errores de firma o engañar a pensar que se aprobó la firma?

Soy muy consciente de que es peligroso hacer esto

ashleysmithgpu
fuente
1
Normalmente, instalaría la clave localmente al mismo tiempo que agrega un repositorio, entonces, ¿por qué necesita acceder a los servidores de claves?
JanC

Respuestas:

68

Pase la --allow-unauthenticatedopción a apt-getcomo en:

sudo apt-get --allow-unauthenticated upgrade

De la página del manual de apt-get:

--permitir-no autenticado
Ignorar si los paquetes no se pueden autenticar y no preguntar al respecto. Esto es útil para herramientas como pbuilder. Elemento de configuración: APT :: Get :: AllowUnauthenticated.

Puede hacer que esta configuración sea permanente utilizando su propio archivo de configuración en /etc/apt/apt.conf.d/dir. El nombre de archivo puede ser 99myowny puede contener esta línea:

APT::Get::AllowUnauthenticated "true";

De esta manera, no necesita usar la opción cada vez que quiera instalar el software. Nota: No recomiendo configurar esta opción de manera predeterminada, omite las comprobaciones de firma que podrían permitir que un adversario comprometa su computadora.

Lekensteyn
fuente
44
Para información: Esto funciona apt-getcon el aptcomando simple pero no con él .
Tor Klingberg
2
Ubuntu 16.0 LTS. Esto no funciona / no tiene ningún efecto en nada
wvxvw
7

Si está tratando de obtener un paquete de un repositorio donde empaquetaron las claves e incluirlas dentro del repositorio y en ningún otro lugar, puede ser muy molesto descargar e instalar el paquete de claves / llaveros usando dpkg, y es muy difícil hacerlo. de manera fácil de escribir y repetir.

El siguiente script no se recomienda si puede instalar las claves desde un servidor de claves o descargarlas de una fuente confiable a través de https, pero si no tiene NINGUNA otra forma, puede usar esto.

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 armé esto porque i3 en su repositorio sur5r hace esto, pero luego descubrí que sus claves están en la lista keyserver.ubuntu.com, por lo que puedo sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E3CA1A89941C42E6evitar todas las molestias adicionales del paquete.

dragon788
fuente
Vine aquí por el problema de i3 sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E3CA1A89941C42E6, ¡lo resolvió! ¡Muchas gracias!
Benedikt Köppel
6

Tal vez pueda intentar crear el archivo /etc/apt/apt.conf (se leerá si lo crea) e inserte este código:

APT{Ignore {"gpg-pubkey"; }};
lebenlechzer
fuente
55
A mi no me funciona. Pero funciona cuando agreguéAPT { Get { AllowUnauthenticated "1"; }; };
php-coder
ubuntu 16.0 LTS: no tiene ningún efecto sobre lo que hace apt-get.
wvxvw
1

Crea /etc/apt/apt.conf.d/99allow_unauthcon este contenido:

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

Gracias a PHP-codificador 's comentario .

Totor
fuente
0

Me encontré con el mismo problema con un antiguo servidor Debian. No pude hacer un evento

apt-get update

lo que me dio el siguiente error:

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

Finalmente, la solución fue agregar esto:

Acquire::Check-Valid-Until false;

a /etc/apt/apt.conf (créelo si no existe). Después de esto, el error se convirtió en una simple advertencia.

Supongo que también podría funcionar en ubuntu.

Tenga en cuenta que es totalmente inseguro.

Gnusam
fuente
Si es tan inseguro, entonces sugiero que no lo publiques en absoluto.
Yufenyuy Veyeh Dider
La forma segura de hacer esto es actualizar la distribución. En algunos casos complicados de clientes, no tiene forma de actualizar. Y como toda la pregunta comienza con este descargo de responsabilidad: "Estoy muy consciente de que es peligroso hacer esto", pensé que mi contribución fue apropiada. Si no, puedo eliminarlo.
Gnusam