una de las cosas que tuve que hacer hace un tiempo es agregar una firma pgp para un repo nuevo que había instalado
En este caso era para la instalación de zabbix, sin embargo se puede usar con cualquier repo nuevo que tenga este problema, lo que si se debe averiguar donde se encuentra la firma del repo en cuestión y cual es la llave publica.
Para el caso de Zabbix, una vez instalado el repo tendremos un mensaje de advertencia como este
warning: /var/cache/dnf/zabbix-78f93698dfce6ec4/packages/zabbix-agent-3.2.11-1.el7.x86_64.rpm: Header V4 RSA/SHA512 Signature, key ID a14fe591: NOKEY
de este mensaje podemos sacar el KEY ID, necesario para buscar el archivo de firma que debemos instalar
Otra forma de saber cual es el KEY ID es usando rpm -i en el paquete que queramos instalar
rpm -i zabbix-release-3.2-1.el7.noarch.rpm warning: zabbix-release-3.2-1.el7.noarch.rpm: Header V4 RSA/SHA512 Signature, key ID a14fe591: NOKEY
En el caso de Zabbix en la misma url donde descargue el paquete tenemos un listado con los KEY ID para instalar pudiendo hacerlo de 2 formas distintas.
La primera es descargar la firma y luego importarla con rpm
wget http://repo.zabbix.com/RPM-GPG-KEY-ZABBIX-A14FE591 rpm --import RPM-GPG-KEY-ZABBIX-A14FE591
o tambien lo puedo hacer con un solo comando, donde en vez de descargar primero la firma simplemente la pasamos como argumento del comando
rpm --import http://repo.zabbix.com/RPM-GPG-KEY-ZABBIX-A14FE591
con esto ya podemos ver que en el directorio se agrega el archivo correspondiente a zabbix
ls /etc/pki/rpm-gpg/ RPM-GPG-KEY-centosofficial RPM-GPG-KEY-EPEL-8 RPM-GPG-KEY-ZABBIX-A14FE591
con esto ya no tendremos mas el mensaje de error y podemos comprobar correctamente los paquetes descargados usando el repo de Zabbix
un ejemplo de una instalación automática de las firmas pgp es con epel, podemos revisar el directorio /etc/pki/rpm-gpg/ y, en una instalación «limpia» veremos solo 2 archivos
cd /etc/pki/rpm-gpg/ ls RPM-GPG-KEY-centosofficial RPM-GPG-KEY-centostesting
si nos fijamos en los archivos del repositorio en Centos tenemos el directorio y a que llave apunta cada repo
cat /etc/yum.repos.d/CentOS-* # CentOS-Base.repo . . . [BaseOS] . . . gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial # CentOS-Extras.repo . . . [extras] . . . gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
Luego de instalar el repo de epel vemos que el directorio anterior ahora cuenta con un archivo mas que corresponde a la firma pgp de epel
yum install epel-release
[student@workstation rpm-gpg]$ ls RPM-GPG-KEY-centosofficial RPM-GPG-KEY-centostesting RPM-GPG-KEY-EPEL-8
y si validamos el archivo de configuración del repo epel vemos que coincide con el nuevo archivo creado
[student@workstation rpm-gpg]$ cat /etc/yum.repos.d/epel.repo [epel] . . . enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-$releasever
con esto podemos deducir que para agregar la firma de un repo bastará con colocar el archivo en el directorio /etc/pki/rpm-gpg/ (u otro de interés pero creo que esta bien seguir las recomendaciones) e indicar el directorio en el archivo de configuración del repo
y eso es todo por este post