sábado, 22 de julio de 2017

Problema con: apt y trusted.gpg

Resulta que actualice de Debian Jessie a Debian Stretch y añadí una un programa no incluidos en los repositorios oficiales de Debian (Skype for linux). A partir de aquí empecé a tener problemas con apt.

Busque en internet y no encontré la solución a la primera, pero como uno es muy constante después de mucho probar, e investigar encontré la solución.

El problema esta muy bien documentado en el web oficial de debian, en el  enlace de abajo, que copio el contenido integro.
https://debian-handbook.info/browse/es-ES/stable/sect.package-authentication.html

Comprobación de la autenticidad de un paquete

La seguridad es muy importante para los administradores de Falcot Corp. Por consiguiente, necesitan asegurar que sólo instalen paquetes con garantía de que provienen de Debian sin modificaciones en el camino. Un «cracker» podría intentar agregar código malicioso en un paquete que de otra forma sería legítimo. Si se instala tal paquete, éste podría hacer cualquier cosa para la que dicho «cracker» lo diseño, inclusive revelar contraseñas o información confidencial por ejemplo. Para evitar este riesgo, Debian provee un sello contra modificaciones para garantizar — al momento de instalación — que el paquete realmente proviene de su encargado oficial y no fue modificado por un tercero.
El sello funciona con una firma y una cadena de «hashes» criptográficos. El archivo Release, provisto por las réplicas Debian, es el firmado. Contiene una lista de los archivos Packages (incluyendo sus formas comprimidas, Packages.gz y Packages.xz, así como las versiones incrementales), junto con sus «hashes» MD5, SHA1 y SHA256 lo que asegura que los archivos no fueron modificados. Estos archivos Packages contienen una lista de los paquetes Debian disponibles en la réplica junto con sus hashes lo que asegura, a su vez, que el contenido de los paquetes mismos tampoco fue modificado. 
Las llaves confiables son administradas con el programa apt-key que se encuentra en el paquete apt. Este programa mantiene un conjunto de llaves públicas GnuPG que son utilizadas para verificar las firmas disponibles en los archivos Release.gpg disponibles en las réplicas. Puede utilizarse para agregar nuevas llaves de forma manual (cuando se necesitan réplicas no oficiales). Generalmente sin embargo, sólo necesitará las llaves oficiales de Debian. Estas llaves se mantienen actualizadas de forma automática por el paquete debian-archive-keyring (que crea los conjuntos de llaves correspondientes en /etc/apt/trusted.gpg.d). Sin embargo, la primera instalación de este paquete requiere cierto cuidado: aún si el paquete está firmado como cualquier otro, no se puede verificar dicha firma. Los administradores cautelosos deberían, por lo tanto, verificar las huellas de las llaves importadas antes de confiar en ellas para instalar nuevos paquetes: 

# apt-key fingerprint
/etc/apt/trusted.gpg.d/debian-archive-jessie-automatic.gpg
----------------------------------------------------------
pub   4096R/2B90D010 2014-11-21 [expires: 2022-11-19]
      Key fingerprint = 126C 0D24 BD8A 2942 CC7D  F8AC 7638 D044 2B90 D010
uid                  Debian Archive Automatic Signing Key (8/jessie) 

/etc/apt/trusted.gpg.d/debian-archive-jessie-security-automatic.gpg
-------------------------------------------------------------------
pub   4096R/C857C906 2014-11-21 [expires: 2022-11-19]
      Key fingerprint = D211 6914 1CEC D440 F2EB  8DDA 9D6D 8F6B C857 C906
uid                  Debian Security Archive Automatic Signing Key (8/jessie) 

/etc/apt/trusted.gpg.d/debian-archive-jessie-stable.gpg
-------------------------------------------------------
pub   4096R/518E17E1 2013-08-17 [expires: 2021-08-15]
      Key fingerprint = 75DD C3C4 A499 F1A1 8CB5  F3C8 CBF8 D6FD 518E 17E1
uid                  Jessie Stable Release Key 

/etc/apt/trusted.gpg.d/debian-archive-squeeze-automatic.gpg
-----------------------------------------------------------
pub   4096R/473041FA 2010-08-27 [expires: 2018-03-05]
      Key fingerprint = 9FED 2BCB DCD2 9CDF 7626  78CB AED4 B06F 4730 41FA
uid                  Debian Archive Automatic Signing Key (6.0/squeeze) 

/etc/apt/trusted.gpg.d/debian-archive-squeeze-stable.gpg
--------------------------------------------------------
pub   4096R/B98321F9 2010-08-07 [expires: 2017-08-05]
      Key fingerprint = 0E4E DE2C 7F3E 1FC0 D033  800E 6448 1591 B983 21F9
uid                  Squeeze Stable Release Key 

/etc/apt/trusted.gpg.d/debian-archive-wheezy-automatic.gpg
----------------------------------------------------------
pub   4096R/46925553 2012-04-27 [expires: 2020-04-25]
      Key fingerprint = A1BD 8E9D 78F7 FE5C 3E65  D8AF 8B48 AD62 4692 5553
uid                  Debian Archive Automatic Signing Key (7.0/wheezy) 

/etc/apt/trusted.gpg.d/debian-archive-wheezy-stable.gpg
-------------------------------------------------------
pub   4096R/65FFB764 2012-05-08 [expires: 2019-05-07]
      Key fingerprint = ED6D 6527 1AAC F0FF 15D1  2303 6FB2 A1C2 65FF B764
uid                  Wheezy Stable Release Key 


Una vez que las llaves apropiadas se encuentran en el conjunto, APT revisará las firmas antes de cualquier operación riesgosa para que las interfaces muestren una advertencia cuando estén instalando un paquete sobre el que no se puede verificar autenticidad.



Los problemas que causó Skype por no tener la llave publica fue el siguiente

Los errores que me devolvía APT era los siguientes:

W: http://security.debian.org/…/dists/stretch/updates/InRelease: The key(s) in the keyring /etc/apt/trusted.gpg are ignored as the file is not readable by user '_apt' executing apt-key.

W: http://ftp.de.debian.org/debian/dists/stretch/InRelease: The key(s) in the keyring /etc/apt/trusted.gpg are ignored as the file is not readable by user '_apt' executing apt-key.

W: GPG error: https://repo.skype.com/deb stable InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 1F3045A5DF7587C3
 

W: The repository 'https://repo.skype.com/deb stable InRelease' is not signed. 


Las causas eran las siguientes:
Perdía las llaves publicas de Debian stretch, modificaba el fichero /etc/apt/trusted.gpg
y le asignaba los permisos 600, es decir: rw- --- ---
Cuando lo correcto es tener dicho archivo con los permisos 644, es decir: rw- r-- r--

======================================================================

Solución a los errores:

Fue tan fácil como:
1- Borrar el archivo /etc/apt/trusted.gpg usando el comando rm como administrador: rm /etc/apt/trusted.gpg

2- Seguir los pasos de uno de los dos puntos siguientes. Yo realice la OPCION 1, el punto 2.1. por ser el mas rápido.

3- Reinstalar el paquete: debian-archive-keyring


======================================================================

OPCION 1

2.1- Instalar la llave publica directamente de un servidor de ubuntu, ya que Skype for linux, esta creado para los siguientes distribuciones, y la llave publica es la misma para todas las distribuciones:

- Ubuntu 14.04+ de 64 bits
- Debian 8+ de 64 bits
- openSUSE 13.3+ de 64 bits
- Fedora Linux 24+ de 64 bits 

Entonces con el siguiente comando instale la llave publica de Skype for linux.

apt-key adv --keyserver keyserver.ubuntu.com --recv 1F3045A5DF7587C3 



====================================================================== 


OPCION 2

2.2- Descargamos la llave publica de Skype for linux desde el repositorio oficial de Skype.
Enlace oficial : https://repo.skype.com/
y hacer todo lo que indica en dicho repositorio.
Copio y pego todo el contenido de dicho enlace, pero a nosotros los usuario de Debian solo nos interesa el apartado APT:

APT

# make sure you have 'apt-transport-https' installed
dpkg -s apt-transport-https > /dev/null || bash -c "sudo apt-get update; sudo apt-get install apt-transport-https -y"
curl https://repo.skype.com/data/SKYPE-GPG-KEY | sudo apt-key add -
echo "deb [arch=amd64] https://repo.skype.com/deb stable main" | sudo tee /etc/apt/sources.list.d/skype-stable.list
sudo apt-get update
sudo apt-get install skypeforlinux -y

Yum

sudo yum-config-manager --add-repo=https://repo.skype.com/data/skype-stable.repo
sudo yum install skypeforlinux -y

DNF

sudo dnf config-manager --add-repo https://repo.skype.com/data/skype-stable.repo
sudo dnf install skypeforlinux -y

Zypper

sudo zypper ar -f https://repo.skype.com/rpm/stable skypeforlinux
sudo zypper update
sudo zypper install skypeforlinux









.

7 comentarios:

Alejandro dijo...

Diego, gracias por la información, tengo el mismo problema pero tras la instalación de la key de otro programa, he intentado la solución que propones pero en el punto 2.1 (en el que se añade a mano la key que faltaba, en mi caso otra) me da un error con el dirmngr. En concreto me dice esto

apt-key adv --keyserver keyserver.ubuntu.com --recv A040830F7FAC5991
Executing: /tmp/apt-key-gpghome.5R5JimkTBd/gpg.1.sh --keyserver keyserver.ubuntu.com --recv A040830F7FAC5991
gpg: failed to start the dirmngr '/usr/bin/dirmngr': No existe el fichero o el directorio
gpg: connecting dirmngr at '/tmp/apt-key-gpghome.5R5JimkTBd/S.dirmngr' failed: No existe el fichero o el directorio
gpg: keyserver receive failed: No dirmngr


En la red hay varios comentarios sobre el error con dirmngr. Voy a ver si encuentro alguno fiable.

Usuario_Debian dijo...

Hola Alejandro.
Tu problema esta en la key de google chrome, que estas intentando instalar una key que o bien es antigua o ya no esta en el repositorio en el que lo estas buscando.

La solución a tu problema esta en este enlace:
https://www.google.com/linuxrepositories/

Tienes que usar este comando para añadir la key de google chrome:
wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | sudo apt-key add -

Saludos

Unknown dijo...

Hola chicos, saludos. Felicidades por manyterner el blog activo y posteando. No debemos dejar morir los blog que evangelizan con informacion y tutorial sobre Software Libre.

Amigos, tengo un problemilla y no doy con el, en mi debian 8 cuando abro mis archivos me sale la vista en ver elementos como lista y no en rejilla como siempre la coloco, aparte que sale por default los archivos ocultos visibles.
Com0o podria corregir este problemilla?.

Usuario_Debian dijo...

Me alegra saber que mi blog te gusta. Muchas gracias.

NO creo que en esta entrada se deba solucionar tu problema con el explorador de archivos, pero ten en cuenta una cosa.

En linux existen muchos entorno de escritorio y cada entorno usa su propio explorador de archivos. Para darte una posible solución, necesitaría saber que entorno de escritorio usas y que explorador de archivos estas usando, además se puede usar un explorador de archivo, de un entorno de escritorio en otro entorno.
Me explico: El entorno de escritorio KDE usa por defecto el explorador de archivos llamado Dolphin, El entorno de escritorio GNOME usa el explorador de archivos Nautilus, etc...

Lo mejor seria preguntarlo en la entrada de Dolphin.
https://usuariodebian.blogspot.com.es/2017/03/dolphin-explorador-de-archivos.html

Un saludo

Juan PC dijo...

He tenido un problema muy parecido. La diferencia es que no estaba usando repositorios diferentes a los Debian oficiales.
"apt update" daba el error con "trusted.gpg". He borrado ese fichero y se acabó el problema (creo).
He leido en algún foro que el bug venia de synaptics. ?¿?
Tu post me ha ayudado a entender de que va lo de las "key".
Gracias por publicarlo.

Usuario_Debian dijo...

Hola Juan PC.

tu comentas lo siguiente:
"He tenido un problema muy parecido. La diferencia es que no estaba usando repositorios diferentes a los Debian oficiales. ...."

La solución para tu problema esta en este mismo manual, copio y pego aquí una parte de la solución al problema, cuando solo el problema esta en los propios repositorios oficiales de Debian.
- La solución es el punto 1. y luego vuelves a recargar con apt-get o con synaptic y se soluciona.
- El punto 3 aconsejo hacerlo por si se ha perdido o modificado las key de Debian, para tenerlo actualizado.

=============================================
Solución a los errores:

Fue tan fácil como:
1- Borrar el archivo /etc/apt/trusted.gpg usando el comando rm como administrador: rm /etc/apt/trusted.gpg

2- Seguir los pasos de uno de los dos puntos siguientes. Yo realice la OPCION 1, el punto 2.1. por ser el mas rápido.

3- Reinstalar el paquete: debian-archive-keyring
=============================================

También tu comentas:
"He leido en algún foro que el bug venia de synaptics. ?¿?"

No es correcto, si usas cuando tienes el problema, el gestor gráfico synaptic, lo cierras e intentas actualizar desde una consola de comandos con cualquiera de estos comandos, (apt-get update, apt update, aptitude update) veras que todos te devuelven el mismo fallo. Además te indica el error claramente:
W: http://security.debian.org/…/dists/stretch/updates/InRelease: The key(s) in the keyring /etc/apt/trusted.gpg are ignored as the file is not readable by user '_apt' executing apt-key.

Por tanto el error esta unica y exclusivamente en el fichero trusted.gpg (lo mas fácil es borrarlo y que el propio sistema lo genere con la configuración correcta.)

Un saludo.

Leonhart dijo...

Gracias por el post, estuve buscando mucho porque mi error era el mismo pero con la pubkey de Mega, había instalado megasync en Debian 9 y aparentemente todo funcionaba bien, pero al momento de hacer el apt update de me salían esos errores. El proceso para arreglarlo fue el mismo, desde el servidor de Ubuntu sólo cambiando obviamente el número correspondiente al de mega.