Como lo habia comentado hace unos meses, en un post anterior que murio con el “error de diciembre” pacman – el gestor de paquetes de archlinux ha adoptado la firma de paquetes con llaves GPG. Esta nueva firma de paquetes hara mas seguro el uso del gestor de paquetes y repositorios de ArchLinux.

Aunque siendo usuario por poco mas de 2 años de ArchLinux jamas conoci un probvlema de algun paquete troyanizado o comprometido de los repositorios oficiales. Pero tambien tampoco hay que esperar a que eso suceda para darle mas seguridad a los usuarios.

Por default la verificacion en la firma de paquetes viene deshabilitada en este nuevo pacman, se puede utilizar esta nueva caracteristica de 3 formas distintas:

Dentro del archivo /etc/pacman.conf en la seccion de opciones:

SigLevel = Optional TrustedOnly A nivel opcional revisara la llave GPG si es que existe validara solamente las llaves previamente aceptadas y marcadas como confiables

SigLevel = Optional TrustAll A nivel opcional revisara la llave GPG si es que existe, pero aceptara todas las llaves GPG incluso si estas aun no han sido previamente guardadas o marcadas como confiables.

SigLevel = Requiered TrustedOnly Forzosamente revisara la llave GPG si no esta disponible rechazara instalar el paquete, causara conflicto con AUR, validara solamente las llaves previamente aceptadas y marcadas como confiables

SigLevel = Requiered TrustAll Forzosamente revisara la llave GPG si es que existe, pero aceptara todas las llaves GPG incluso si estas aun no han sido previamente guardadas o marcadas como confiables.

SigLevel = Never Caracteristica completamente deshabilitada

Al utilizar cualquiera de las 4 opciones de uso de la firma de paquetes debemos tener activado el servidor de llaves GPG de pacman, de otra FORMA ESTA FIRMA NO FUNCIONARA:

pacman-key --init

Scripts para agregar las llaves GPG requeridas

Llaves maestras

Este script es util para agregar las llaves maestras de los repositorios oficiales:

for key in FFF979E7 CDFD6BB0 4C7EA887 6AC6A4C2 824B18E8; do
    pacman-key --recv-keys $key
    pacman-key --lsign-key $key
    printf 'trust\n3\nquit\n' | gpg --homedir /etc/pacman.d/gnupg/ \
        --no-permission-warning --command-fd 0 --edit-key $key
done

Llaves de developers

Llaves de desarrolladores oficiales de ArchLinux

curl https://www.archlinux.org/developers/ |
awk -F\" '(/pgp.mit.edu/) {sub(/.*search=0x/,"");print $1}' |
xargs pacman-key --recv-keys

Llaves de Usuarios de Confianza (trusted users)

curl https://www.archlinux.org/trustedusers/ |
awk -F\" '(/pgp.mit.edu/) {sub(/.*search=0x/,"");print $1}' |
xargs pacman-key --recv-keys

Posible solucion al error de importacion de llaves

Algunos proveedores de internet bloquearan el puerot utilizado para importar las llaves GPG

Editamos el archivo /etc/pacman.d/gnupg/gpg.conf

Y sustituimos esta linea:

keyserver hkp://keys.gnupg.net

Por

keyserver hkp://pgp.mit.edu:11371

Y todo deberia funcionar bien.