Debian 9, APT und "GPG-Fehler: ... InRelease: Die folgenden Signaturen waren ungültig:"


8

Ich veröffentliche ein Debian-Repository . Es wurde mit einem 4096-Bit-GPG-Schlüssel signiert und wird seit einiger Zeit von Debian 7- und Debian 8-Systemen verwendet. Kürzlich berichtete einer meiner Benutzer, dass Debian 9 Probleme damit hatte. Insbesondere apt-get updateergab sich:

Paketlisten lesen ... Fertig
   W: GPG-Fehler: http://Debian-repository.JdeBP.info . stabile InRelease: Die folgenden Signaturen waren ungültig: A71733F3CEBD655CB25A0DDCE1E3A497555CE68F
   W: Das Repository ' http://Debian-repository.JdeBP.info . Stable InRelease 'ist nicht signiert.

Beachten Sie, dass ich im Gegensatz zu den Leuten bei " Repo APT sicher - GPG-Signatur für apt-get update ungültig " und " Frustriert von treffend und GPG-Signatur " nicht verwende aptly. Ich leide also eindeutig nicht an aptlyirgendwelchen Fehlern. (-:

Also, wo liegt das Problem?


Beachten Sie, dass dies eine andere Fehlermeldung ist und fragt, was der Endbenutzer tun kann, anstatt die Dinge aus der Sicht des Repository-Herausgebers zu betrachten, und dass diese Frage aus dem März 2016 stammt, als die hier diskutierte Änderung APT im November 2016
— zugestoßen ist

Ich stimme zu, dass die Perspektive anders ist.
— Stephen Kitt

Antworten:


9

Die Ursache des Problems ist, dass ohne Aktualisierung des Debian-Wikis oder eines ähnlichen Dokuments und so gut wie nur ein paar weitgehend Ubuntu- bezogenen Ankündigungen auf einer nicht-debianischen persönlichen WWW-Site Schlüssel unterstützt werden, die eine Präferenz für SHA angeben. 1 Verschlüsselung wurde in APT ab Debian 9 deaktiviert. (Insbesondere wurde sie in APT Version 1.4 ~ beta1 deaktiviert, und Debian 9 hat Version 1.4.7.)

Ein Repository-Publisher muss also zwei Dinge tun:

  • Passen Sie das personal-digest-preferencesund personal-cipher-preferencesan $HOME/.gnupg/gpg.confan, um SHA-1 aus den GPG-Einstellungen zu entfernen. Dies verhindert, dass das Problem mit neuen Schlüsseln auftritt.
  • Passen Sie die Einstellungen an , die im aktuellen Repository-Signaturschlüssel enthalten sind , um SHA-1 auch von dort zu entfernen. Dafür muss man:
    • Lauf
      gpg --edit-key "$ {key_fingerprint}"
      die entsprechende Taste Fingerabdruck ersetzen, bearbeiten dann die wichtigsten Einstellungen mit den prefund setprefBefehle, speichern Sie die Schlüssel zum Schlüsselbund.
    • Exportieren Sie den öffentlichen Schlüssel des aktualisierten Schlüssels vom Schlüsselbund in eine Datei.
    • Signieren Sie das Repository erneut mit dem geänderten Signaturschlüssel.
    • Veröffentlichen Sie die öffentliche Schlüsseldatei des aktualisierten Signaturschlüssels.

Beachten Sie, dass es nicht erforderlich ist, einen neuen Signaturschlüssel zu generieren, und dass der aktualisierte Schlüssel mit entferntem SHA-1 weiterhin mit dem älteren Debian 8 APT zusammenarbeitet.

Weiterführende Literatur


4

Wie JdeBP bereits betont hat, unterstützt apt ab Debian 9 SHA-1 nicht mehr, was bedeutet, dass die InReleaseDatei stattdessen mit SHA-256 erstellt werden muss (dasselbe gilt für Release.pg).

Was es für mich behoben hat, war die Angabe -digest-algo SHA256als Parameter für gpg, sodass die vollständige Sequenz wie folgt lauten würde:

  1. Erstellen Sie das Paket:

    dpkg-deb --build ${PACKAGE_NAME}-1.0/
    sudo rm ${SOME_TEMP_PATH}/*
    mv ${PACKAGE_NAME_name}-1.0.deb ${SOME_TEMP_PATH}/
    dpkg-scanpackages ${SOME_TEMP_PATH} /dev/null | gzip -9c > ${SOME_TEMP_PATH}/Packages.gz
    sudo rm ${PATH_TO_REPO_IN_WWW_SERVER}/*
    sudo cp ${SOME_TEMP_PATH}/* ${PATH_TO_REPO_IN_WWW_SERVER}
    cd ${PATH_TO_REPO_IN_WWW_SERVER}
    
  2. Unterschreib es:

    apt-ftparchive --md5 --sha256 release .  > Release 
    gpg --digest-algo SHA256 --armor --output Release.gpg --detach-sign Release
    gpg --digest-algo SHA256 --clearsign --output InRelease Release
    

Das Signieren kann auch aus dem temporären Ordner erfolgen und dann das gesamte Objekt in den Webserver-Ordner kopiert werden, oder Sie möchten mit Pfaden herumspielen, nämlich dem .beim Aufrufen verwendeten " " apt-ftparchive, wenn Sie Ihre .debs in einem separaten Baum speichern möchten .

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.