Pacman-key: Unterschied zwischen den Versionen
Ergänzung für Schlüssel, die sich auf keinem Keyserver befinden |
K →Inoffizielle Keys: Umformulierung |
||
Zeile 59: | Zeile 59: | ||
# pacman-key -r <keyid> | # pacman-key -r <keyid> | ||
lädt man diese ID von einem Keyserver herunter. Es ist unbedingt daran zu denken, den Fingerprint zu prüfen, so wie man es mit einem Master-Key oder jedem anderen zu signierenden Schlüssel auch täte! | lädt man diese ID von einem Keyserver herunter. Es ist unbedingt daran zu denken, den Fingerprint zu prüfen, so wie man es mit einem Master-Key oder jedem anderen zu signierenden Schlüssel auch täte! | ||
Befindet sich der Key auf keinem Keyserver, weil man sich nur lokal einen Key erstellt hat, um die selbstgebauten Pakete zu signieren, | Befindet sich der Key auf keinem Keyserver, weil man sich nur lokal einen Key erstellt hat, um die selbstgebauten Pakete zu signieren, kann man diesen so hinzufügen: | ||
# pacman-key -a <pubring-file> | # pacman-key -a <pubring-file> | ||
Die Pubring-Datei kann man üblicherweise im Home-Verzeichnis des Users finden, der den Key erstellt hat: <code>/home/user/.gnupg/</code> | Die Pubring-Datei kann man üblicherweise im Home-Verzeichnis des Users finden, der den Key erstellt hat: <code>/home/user/.gnupg/</code> |
Version vom 28. Juni 2012, 10:57 Uhr
Dieser Artikel wurde als veraltet markiert, und sollte kontrolliert, und gegebenfalls korrigiert bzw. aktualisiert werden.
Pacman-key ist ein neues, mit Pacman 4 verfügbares Werkzeug. Es ermöglicht dem Nutzer, die Liste vertrauenswürdiger Schlüssel zu verwalten. Hintergrundinformationen zu diesem Thema sind in folgenden (englischen) Blogeinträgen, [1] [2] [3] [4] sowie dem englischsprachigen Wiki und in diesem Thread im deutschen Archforum zu finden.
Funktionsweise
Um sicherzustellen das Pakete auch wirklich von den Entwicklern stammen und nicht von jemandem, der sich als diese ausgibt, bedient sich die Paketsignierung Pacmans des "Web Of Trust" Models. Entwickler und Trusted User besitzen individuelle GPG-Schlüssel, mit denen sie ihre Pakete signieren. Mit dieser Signatur wird der Ursprung der Pakete belegt. Der Nutzer verfügt demgegenüber ebenfalls über ein Schlüsselunikat, welches beim Setup von pacman-key erstellt wird.
Schlüssel können auch dazu benutzt werden, andere Schlüssel zu signieren, was bedeutet, dass der Besitzer des zum Signieren verwendeten Schlüssels für die Authentizität des signierten Schlüssels garantiert. Um ein Paket als vertrauenswürdig einstufen zu können, wird eine Kette von Signaturen benötigt, die vom eigenen GPG Schlüssel bis hin zum Paket selbst reicht. Durch die Arch-Schlüssel-Struktur kann dies auf drei Arten geschehen:
- Custom Pakete: Man hat das Paket persönlich erstellt und es mit dem eigenen Schlüssel signiert.
- Inoffizielle Pakete: Ein Entwickler hat ein Paket erstellt und signiert; Man selbst signiert mit seinem Schlüssel den Schlüssel des Entwicklers.
- Offizielle Pakete: Ein Entwickler hat ein Paket erstellt und signiert. Der Schlüssel des Entwicklers wurde über die Arch Linux Master Keys signiert. Die Arch Linux Master Keys werden weiterhin mit dem eigenen Schlüssel signiert und somit für vertrauenswürdig erklärt, was die Authentizität des Entwickler-Schlüssels mit einschließt.
Setup
Pacman konfigurieren
Zunächst muss man sich für die Art der Signaturprüfung entscheiden. Diese wird über die SigLevel-Option in der /etc/pacman.conf
eingestellt. Man hat die Möglichkeit die Option global oder für jedes Repository extra einzustellen.
Welche Einträge gültig sind können in der in der Man-Page von pacman.conf man page nachgelesen werden.
Standardmäßig ist in der pacman.conf
für jedes Repository folgende Option gesetzt:
SigLevel = PackageRequired
Pakete aus diesen Repositorien können nur installiert werden, wenn der Key signiert wurde. Weiterhin bedeutet es , dass lokal gebaute Pakete keiner Signatur bedürfen um installiert werden zu können.
Archlinux-Keyring
Der Weg, um an die gültigen Schlüssel zu kommen, wurde durch das Update von pacman auf 4.0.3 vereinfacht[5]. Seit diesem Update wird das Paket "archlinux-keyring" als Abhängigkeit für Pacman mitinstalliert. Dadurch braucht man nur noch die Befehle
# pacman-key --init
sowie
# pacman-key --populate archlinux
auszuführen. Erstere Befehl sorgt dafür, dass ein Schlüsselbund für Pacman erstellt wird, während der Zweite dafür sorgt, dass die Master-Keys lokal verifiziert werden.
Diese Befehle entfallen, wenn man schon einen Schlüsselbund initialisiert hat, respektive die Master-Keys lokal verifiziert hat.
Schlüsselbund verwalten
Schlüssel, die benötigt werden um Paketsignaturen zu verifizieren, werden von pacman-key in einem Schlüsselbund (Keyring) verwaltet. Dieser Schlüsselbund befindet sich bei /etc/pacman.d/gnupg/
. Die Verwaltung der offiziellen Schlüssel erfolgt durch das Paket archlinux-keyring. Allerdings kann es durchaus sein, dass man fremde Repositorien benutzt. Möchte man auch hier in den Genuss der Paket-Verifizierung kommen muss man diese Schlüssel selbst in den Schlüsselring übertragen. Kommt dieser Fall vor, rufen pacman und pacman-key diesen von einem Keyserver ab. Der zu verwendende Keyserver wird in
/etc/pacman.d/gnupg/gpg.conf
definiert. Durch Verwenden der --keyserver
Option in der Kommandozeile kann diese Definition (vorübergehend) ausser Kraft gesetzt werden. (Andere Keyserver findet man in diesem Wikipediaartikel aufgelistet.)
Für gewöhnlich sind GPG-Schlüssel zu gross (2048 bits oder mehr) als das Menschen mit ihnen arbeiten könnten. Deshalb werden sie zerlegt, um einen 40 Hexadezimalzeichen langen Fingerprint zu erstellen. Die letzten acht Stellen, die sog. Key-ID, werden als "Name" für den Key verwandt. Der längere Fingerprint wird benutzt, um händisch zwei Schlüssel auf Gleichheit zu überprüfen.
Offizielle Entwickler-Keys
Die offiziellen Entwickler-Keys muss man in der Regel nicht mehr selbst verwalten. Trotzdem sollte man sich durchaus die Zeit nehmen und diese überprüfen. Die erste Anlaufstelle wäre die Seite "Master Signing Keys", auf der alle aufgelistet werden. Weiterhin sind, als weiteres Beispiel, die Blogs der Entwickler eine Anlaufstelle um die Gültigkeit eines Keys zu überprüfen.
Inoffizielle Keys
Möchte man seinem Schlüsselbund inoffizielle Keys zufügen, muss man dies manuell tun. Als erstes braucht man die ID des Schlüsselbesitzers. Mit
# pacman-key -r <keyid>
lädt man diese ID von einem Keyserver herunter. Es ist unbedingt daran zu denken, den Fingerprint zu prüfen, so wie man es mit einem Master-Key oder jedem anderen zu signierenden Schlüssel auch täte! Befindet sich der Key auf keinem Keyserver, weil man sich nur lokal einen Key erstellt hat, um die selbstgebauten Pakete zu signieren, kann man diesen so hinzufügen:
# pacman-key -a <pubring-file>
Die Pubring-Datei kann man üblicherweise im Home-Verzeichnis des Users finden, der den Key erstellt hat: /home/user/.gnupg/
Nach der Überprüfung des Schlüssels muss man ihn lokal signieren und ihren Trust Level mindestens auf gering, also "marginal", setzen:
# pacman-key --lsign-key <keyid>
Der Schlüssel ist jetzt als vertrauenswürdig eingestuft.
Alternativ kann so vorgegangen werden, um einen Schlüssel zu signieren:
# pacman-key --edit-key <keyid> gpg> lsign ... Primary key fingerprint: ... ... Really sign? (y/N) y gpg> trust ... Your decision? 3 gpg> q Save changes? (y/N) y
Möchte man diese lokale Signierung wieder entfernen muss man wie folgt vorgehen:
# pacman-key --edit-key <keyid> gpg> uid 1 gpg> delsig <keyid> gpg> quit # pacman-key -d <keyid>
Nur das Löschen alleine mit "pacman-key -d" reicht NICHT!
Problembehebung
Erzeugen zufälliger Bytes / Entropy
Kommt es beim Ausführen von pacman-key --init
zu folgender Meldung
gpg: Generating pacman keychain master key... Not enough random bytes available. Please do some other work to give the OS a chance to collect more entropy!
kann man z.B. durch ausführen von updatedb
in einer anderen virtuellen Konsole, bewegen der Maus und drücken zufälliger Tasten auf dem Keyboard Abhilfe schaffen. (siehe 2.2)
Falls man pacman-key --init
via ssh ausführen muss, kann man zuvor das Paket haveged auf dem Zielrechner installieren. Anschliessend verbindet man sich per ssh mit dem Zielrechner und führt
# rc.d start haveged # pacman-key --init
aus. Nachdem pacman-key --init
erfolgreich ausgeführt wurde kann man haveged
beenden und wieder deinstallieren.
# rc.d stop haveged # pacman -Rs haveged
Schlüssel können nicht importiert werden
Manche Internetanbieter blockieren die Ports, die GPG verwendet um Keys zu importieren. Ein Weg dieses Problem zu umgehen, wäre einen MIT Keyserver zu benutzen, der alternative Ports anbietet. Dazu ändert man in /etc/pacman.d/gnupg/gpg.conf
die Keyserver Zeile wie folgt:
keyserver hkp://pgp.mit.edu:11371
SigLevel Optionen
Achtung: Das Deaktivieren der Signaturprüfung erlaubt es Pacman, nicht vertrauenswürdige Pakete automatisch zu installieren!
Sollte man sich nicht mit Paketsignierung befassen wollen, kann man die GPG-Signatur-Prüfung komplett deaktivieren. Dazu entfernt man in /etc/pacman.conf
unter [options] das Kommentarzeichen vor:
SigLevel = Optional TrustedOnly
und ersetzt die Optionen durch
SigLevel = Never
Dadurch deaktiviert man die Signaturprüfung, so wie es in Pacman vor Version 4 der Fall war. Entscheidet man sich, dies zu tun, braucht man keinen Schlüsselbund mit pacman-key zu erstellen. Es ist immer möglich, die Option der Signaturprüfung zu einem späteren Zeitpunkt wieder zu aktivieren.
Siehe auch
Dieser Artikel (oder Teile davon) steht unter GNU FDL (GNU Freie Dokumentationslizenz) und ist eine Übersetzung aus dem ArchLinux.org Wiki. Am Original-Artikel kann jeder Korrekturen und Ergänzungen vornehmen. Im ArchLinux.org Wiki ist eine Liste der Autoren verfügbar. |