Entwicklerhandbuch/GPG Schluessel
GPG für das Signieren eines debian Pakets
Für ein sicheres und gemeinsames arbeiten an einem debian Repository sollte jeder seine Pakete und Uploads mit seinem eigenen gpg-key unterschreiben.
Hier eine kurze Anleitung, wie dieser Key anzulegen ist.
Paketinstallation
Kurz und schmerzlos gpg installieren: <source lang="bash"> $ sudo aptitude install gnupg gnupg-agent </source>
Schlüssel erzeugen
Der nachfolgende Aufruf erzeugt den Schlüssel. Bitte benutze deinen vollen Namen und deine delixs-Adresse. Der Aufruf endet so in etwa wie hier <source lang="bash"> $ gpg --gen-key [...] gpg: Schlüssel 0DDF17D0 ist als uneingeschränkt vertrauenswürdig gekennzeichnet Öffentlichen und geheimen Schlüssel erzeugt und signiert.
gpg: "Trust-DB" wird überprüft gpg: 3 marginal-needed, 1 complete-needed, PGP Vertrauensmodell gpg: Tiefe: 0 gültig: 1 unterschrieben: 0 Vertrauen: 0-, 0q, 0n, 0m, 0f, 1u gpg: nächste "Trust-DB"-Pflichtüberprüfung am 2014-11-12 pub 1024D/0DDF17D0 2009-11-13 [verfällt: 2014-11-12]
Schl.-Fingerabdruck = 1E25 3B8E EC5E 4DC4 7CA6 DC25 74B0 E102 0DDF 17D0
uid Thorsten Strusch <post@thorstenstrusch.de> sub 2048g/3D7D81D5 2009-11-13 [verfällt: 2014-11-12] </source>
Die Schlüssel ID (hier 0DDF17D0) solltest du dir merken, wir brauche sie noch weiter unten.
Passwortverwaltung mit gnupg-agent
Sowohl dpkg-buildpackage als auch dput verlangen beim Erstellen des Pakets bzw. beim Signieren oder Hochladen nach dem Passwort für den Schlüssel. Damit man nicht immer wieder den key eintippen muss, kann sich der gpg Agent das Passwort Weile merken. Schreib dafür folgendes in deine ~/.bashrc
<source lang="bash"> GPG_TTY=`tty` export GPG_TTY
- Für die Signierung des Archivs
if test -f $HOME/.gpg-agent-info && kill -0 `cut -d: -f 2 $HOME/.gpg-agent-info` 2>/dev/null; then
GPG_AGENT_INFO=`cat $HOME/.gpg-agent-info` export GPG_AGENT_INFO
else
eval `gpg-agent --daemon` echo $GPG_AGENT_INFO >$HOME/.gpg-agent-info
fi </source> Damit der agent überhaupt benutzt wird, muss man das in der gpg-Konfiguration freischalten: <source lang="bash"> echo "use-agent" > ~/.gnupg/gpg.conf </source>
Gnome Desktop
Unter dem Gnome Desktop kann die Anwengung seahorse aus dem gleichnamigen debian-Paket installiert werden. Es reicht ein aptitude install seahorse
.
privaten Schlüssel bekannt geben
Damit du mit deinem Schlüssel signierte Pakete in das delixs-Repository hochladen darfst, muss du uns deinen privaten Schlüssel geben.
Zuerst benötigst du die ID deines Schlüssels. Hier im Beispiel ist es die 0DDF17D0 <source lang="bash"> $ gpg --list-keys /home/thorsten/.gnupg/pubring.gpg
pub 1024D/0DDF17D0 2009-11-13 [verfällt: 2014-11-12] uid Thorsten Strusch <post@thorstenstrusch.de> sub 2048g/3D7D81D5 2009-11-13 [verfällt: 2014-11-12] </source> Jetzt exportiere diesen Schlüssel mit der eben erfahrenen keyID in eine Datei. Wir wählen über den Schalter armor das ASCII-Format, weil man es per Mail verschicken kann, ohne Gefahr zu laufen, dass es dabei zersört wird. <source lang="bash"> gpg --output $USERNAME.asc --armor --export 0DDF17D0 </source> Maile die entstandene Datei (= der öffentliche Schlüssel deines gpg-keys) an die delixs-Mailingliste.