APT

Umgang mit dem APT Keyring

Das Hinzufügen eines Schlüssels zu /etc/apt/trusted.gpg.d ist unsicher, da dadurch der Schlüssel für alle Repositories gilt. Daher wurden apt-key (und das Ansible-Modul ansible.builtin.apt_key) deprecated.

Der neue und sichere Ablauf sieht so aus:

  1. Der GPG-Schlüssel wird unter /etc/apt/keyrings/ abgelegt, wobei die Dateiendung dem Dateiformat entsprechen muss. Mittels file kann das Format bestimmt werden:

    • OpenPGP Public Key: Binary GPG key. .gpg Dateiendung verwenden.

    • PGP public key block Public-Key (old): ASCII-armored key. .asc Dateiendung verwenden.

  2. Nun muss der Pfad zum Schlüssel im /etc/apt/sources.list.d/ explizit angegeben werden, zum Beispiel deb [signed-by=/etc/apt/keyrings/icinga.asc] https://....

Troubleshooting

The following signatures couldn't be verified because the public key is not available obwohl der Key als signed-by in der Repo-Definition angegeben ist (normalerweise in /etc/apt/sources.list.d/)

APT akzeptiert Keys in zwei Formaten:

  • binärer GPG Key (Dateiendung .gpg)

  • oder als ASCII-armored PGP Key (Dateiendung .pgp, für APT .asc)

Es ist wichtig, dass die Dateierweiterung passend zum Format gesetzt ist, sonst wird die Datei von APT nicht korrekt geladen.

Fälschlicherweise werden ASCII-armored PGP Keys oft als .gpg angeboten - APT erwartet bei dieser Dateiendung aber einen binären GPG Key. Die Konvertierung erfolgt z.B. mit curl https://repo.linuxfabrik.ch/linuxfabrik.key | sudo gpg --dearmor --output /usr/share/keyrings/linuxfabrik.gpg. Soll APT den ASCII-armored PGP Key direkt verwenden, muss die Dateiendung .asc lauten. Damit wird auf dem Server kein GPG benötigt.

Built on 2025-03-27