Wie kann ich ein Debian-Quellpaket sicher herunterladen und gpg verifizieren?


13

Ich benötige spezielle (Quell- oder Binär-) Pakete von Debian.

Kann ich das Paket mit apt-get herunterladen?

Wie kann ich das Debian-Repository zu meiner sources.list hinzufügen, damit es nur fallweise verwendet wird? Ohne mein System zu vermasseln, indem Sie das gesamte Debian-Repository nutzen?

Wie kann ich den gpg-Schlüssel für das Debian-Repository erhalten, um sicherzustellen, dass das Paket vom Debian-Archiv signiert wurde?

(Bitte sagen Sie mir nicht, dass das System kaputt gehen könnte. Mir ist das bewusst und es ist mir egal, da ich einen VM-Snapshot einfach wiederherstellen kann.)


Ein Teil der Lösung könnte das Paket debian-archive-keyring sein, das /usr/share/keyrings/debian-archive-keyring.gpg enthält.
James Mitch

Ein weiterer Teil der Lösung könnte Apt-Pinning sein: jaqque.sbih.org/kplug/apt-pinning.html
James Mitch

Meine diese Antwort hilft dir? askubuntu.com/questions/263705/…
andol

Antworten:


14

Es gibt mehrere Fragen, die ich individuell beantworten werde:

Wie kann ich ein einzelnes Binärpaket herunterladen (und nicht installieren)?

apt-get hat die Option, nur das Paket herunterzuladen:

-d  Download only - do NOT install or unpack archives

Sie finden das heruntergeladene Paket in /var/cache/apt/archives/. In diesem Fall müssen Sie apt eine neue Quellenlistenkonfiguration hinzufügen.

Wie lade ich ein einzelnes Quellpaket herunter?

apt-get source <package>

oder wenn Sie den Speicherort der .dsc-Datei kennen:

dget http://http.debian.net/debian/pool/main/k/knot/knot_1.2.0~rc3-1.dsc

Beide Ansätze überprüfen die Signatur in den Dateien

Wie pinne ich die sources.list aka wie kann ich meine Installation nicht durcheinander bringen?

Sie haben bereits auf die Seite mit der grundlegenden Beschreibung für APT Pinning verwiesen , und ich möchte nur hinzufügen, dass Sie wahrscheinlich die Hilfeseite apt_preferences lesen möchten, die auch schöne Beispiele für die Ausführung der von Ihnen benötigten Aufgaben enthält . Beachten Sie insbesondere den Abschnitt 'Tracking Stable' in BEISPIELEN, da er etwas beschreibt, das Ihren Anforderungen sehr nahe kommt:

Es gibt einen nützlichen Befehl, wenn Sie mit mehreren Quellen und APT-Pinning spielen:

# apt-cache policy knot
knot:
  Installed: 1.1.3-1~bpo60+1
  Candidate: 1.2.0~rc3-1~bpo60+1
  Version table:
     1.2.0~rc3-1~bpo60+1 0
        500 http://deb.knot-dns.cz/debian/ squeeze/main amd64 Packages
 *** 1.1.3-1~bpo60+1 0
        100 /var/lib/dpkg/status
     1.0.5-1~bpo60+1 0
        500 http://ppa.sury.org/debian/ squeeze/main amd64 Packages

Dies zeigt, dass die installierte Version 1.1.3-1 ~ bpo60 + 1 und der Kandidat 1.2.0 ~ rc3-1 ~ bpo60 + 1 ist, der als nächstes installiert wird apt-get upgrade. Es gibt auch eine ältere Version aus einem anderen Repository.

Wie lade ich den Debian-Archivschlüssel herunter?

Der Debian-Archivschlüssel wird auf ftp-master veröffentlicht . Sie müssen den Schlüssel in Ihren gpg-Schlüsselbund importieren:

$ gpg --import archive-key-6.0.asc 
gpg: key 473041FA: public key "Debian Archive Automatic Signing Key (6.0/squeeze) <ftpmaster@debian.org>" imported
gpg: Total number processed: 1
gpg:               imported: 1  (RSA: 1)
gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model
gpg: depth: 0  valid:   9  signed:  31  trust: 0-, 0q, 0n, 0m, 0f, 9u
gpg: depth: 1  valid:  31  signed:  38  trust: 25-, 0q, 0n, 1m, 5f, 0u
gpg: depth: 2  valid:  21  signed:  31  trust: 19-, 0q, 0n, 0m, 2f, 0u
gpg: depth: 3  valid:   3  signed:  12  trust: 2-, 0q, 0n, 0m, 1f, 0u
gpg: depth: 4  valid:   1  signed:   8  trust: 1-, 0q, 0n, 0m, 0f, 0u
gpg: next trustdb check due at 2013-09-22

Dann müssen Sie die Signaturen überprüfen:

$ gpg --list-sig 473041FA
pub   4096R/473041FA 2010-08-27 [expires: 2018-03-05]
uid                  Debian Archive Automatic Signing Key (6.0/squeeze) <ftpmaster@debian.org>
sig 3        473041FA 2010-08-27  Debian Archive Automatic Signing Key (6.0/squeeze) <ftpmaster@debian.org>
sig          7E7B8AC9 2010-08-27  Joerg Jaspert <joerg@debian.org>
sig     P    B12525C4 2010-08-27  [User ID not found]
sig          D0EC0723 2010-08-27  [User ID not found]
sig          8AEA8FEE 2010-08-27  [User ID not found]
sig          A3AE44A4 2010-08-28  [User ID not found]
sig          00D8CD16 2010-08-28  Alexander Reichle-Schmehl <alexander@reichle.schmehl.info>
sig          CD15A883 2010-08-28  [User ID not found]
sig          672C8B12 2010-08-28  [User ID not found]
sig 2        C4CF8EC3 2010-08-28  [User ID not found]
sig 2        D628A5CA 2010-08-28  [User ID not found]

Und verfolgen Sie die einzelnen GPG-Schlüssel für Debian-Entwickler, indem Sie sie entweder manuell verfolgen oder z. B. im PGP Key Statistics- Projekt überprüfen . Und wenn es keine Kette von Ihrem PGP / GPG-Schlüssel zum Debian-Schlüsselarchiv gibt, müssen Sie irgendwann einen Vertrauenssprung machen.

So laden Sie einzelne Pakete von Hand herunter und überprüfen sie

Der andere Ansatz ist komplizierter, da deb-Pakete nicht einzeln signiert werden, sondern nur die ReleaseDatei signiert wird. Daher müssen Sie die Signatur Releaseund die PackagesDateien zusammen mit dem jeweiligen Paket herunterladen und überprüfen .

Ich werde ein Beispiel hinzufügen, das klarer wird.

Stellen Sie sich vor, Sie möchten das Debian-Paket für Knot-DNS von der offiziellen PPA für Ubuntu herunterladen, die genau auf der amd64-Architektur basiert .

Sie müssen durch die Verzeichnisse klicken und die folgenden Dateien finden:

wget http://ppa.launchpad.net/cz.nic-labs/knot-dns/ubuntu/dists/precise/Release
wget http://ppa.launchpad.net/cz.nic-labs/knot-dns/ubuntu/dists/precise/Release.gpg
wget http://ppa.launchpad.net/cz.nic-labs/knot-dns/ubuntu/dists/precise/main/binary-amd64/Packages
wget http://ppa.launchpad.net/cz.nic-labs/knot-dns/ubuntu/pool/main/k/knot/knot_1.2.0~rc3-1~precise+1_amd64.deb

Der nächste Schritt wäre die Überprüfung der Signatur in der ReleaseDatei:

$ gpg --verify Release.gpg Release
gpg: Signature made Fri 01 Mar 2013 07:14:38 PM CET using RSA key ID F9C59A45
gpg: Good signature from "Launchpad Datové schránky"
gpg: WARNING: This key is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.
Primary key fingerprint: 5246 3488 670E 69A0 9200  7C24 F233 1238 F9C5 9A45

Natürlich müssen Sie den Schlüssel auf andere Weise überprüfen (z. B. mit dem Debian / Ubuntu-Betreuer-Schlüssel, über das Launchpad usw. usw.).

Wenn Sie die korrekte Signatur in der ReleaseDatei überprüft haben , können Sie mit dem nächsten Schritt fortfahren - Überprüfen der Paketdatei.

sha256sum Packages
c96a524398cf6e9db033c8299974fe324eba47cc8190efec6495c74e251330ad  Packages
$ grep c96a524398cf6e9db033c8299974fe324eba47cc8190efec6495c74e251330ad Release
 c96a524398cf6e9db033c8299974fe324eba47cc8190efec6495c74e251330ad             3379 main/binary-amd64/Packages

Wie Sie sehen, befindet sich die Signatur in der signierten ReleaseDatei. Daher haben wir die Integrität der PackagesDatei überprüft, indem wir den SHA-256-Fingerabdruck berechnet und verglichen haben.

Der letzte Schritt ist ähnlich. Sie müssen den Fingerabdruck des einzelnen Pakets berechnen und vergleichen:

$ sha1sum knot_1.2.0~rc3-1~precise+1_amd64.deb 
8b34078e9bfef7aa818b2f926a28838b0ede9f43  knot_1.2.0~rc3-1~precise+1_amd64.deb
$ grep -A 13 "Package: knot$" Packages | grep "^SHA1: "
SHA1: 8b34078e9bfef7aa818b2f926a28838b0ede9f43

Zu diesem Zeitpunkt haben wir das Paket sicher mit der signierten ReleaseDatei verkettet . Wenn Sie also der Signatur in der ReleaseDatei glauben , können Sie sicher sein, dass das Paket intakt heruntergeladen wurde.

Weitere Informationen finden Sie im Artikel zu Secure APT im Debian-Wiki.


Könnten Sie bitte erklären, warum für den gpgBefehl keine Root-Berechtigungen erforderlich sind? Es soll ein Verwaltungswerkzeug sein.
Sopalajo de Arrierez

1
@SopalajodeArrierez Dies ist kein Verwaltungstool. Weitere
Informationen zu
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.