añadir firmas pgp en RHEL

por | 7 mayo, 2021

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *