Entwicklerhandbuch/GPG Schluessel: Unterschied zwischen den Versionen

Aus Delixs
Zur Navigation springen Zur Suche springen
(Links)
Zeile 1: Zeile 1:
= GPG für das Signieren eines debian Pakets =
__NOTOC__
{{ZumTest}}
 
 
== 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.
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.  
Hier eine kurze Anleitung, wie dieser Key anzulegen ist.  


== Paketinstallation ==
 
=== Paketinstallation ===
 
Kurz und schmerzlos gpg installieren:
Kurz und schmerzlos gpg installieren:
<source lang="bash">
<source lang="bash">
$ sudo aptitude install gnupg gnupg-agent
$ sudo aptitude install gnupg gnupg-agent
</source>
</source>


== Schlüssel erzeugen ==
 
=== Schlüssel erzeugen ===
 
Der nachfolgende Aufruf erzeugt den Schlüssel. Bitte benutze deinen vollen Namen und deine delixs-Adresse.
Der nachfolgende Aufruf erzeugt den Schlüssel. Bitte benutze deinen vollen Namen und deine delixs-Adresse.
Der Aufruf endet so in etwa wie hier
Der Aufruf endet so in etwa wie hier
<source lang="bash">
<source lang="bash">
$ gpg --gen-key
$ gpg --gen-key
Zeile 28: Zeile 39:
sub  2048g/3D7D81D5 2009-11-13 [verfällt: 2014-11-12]
sub  2048g/3D7D81D5 2009-11-13 [verfällt: 2014-11-12]
</source>
</source>


Die Schlüssel ID ('''hier 0DDF17D0''') solltest du dir merken, wir brauche sie noch weiter unten.
Die Schlüssel ID ('''hier 0DDF17D0''') solltest du dir merken, wir brauche sie noch weiter unten.


== Passwortverwaltung mit gnupg-agent ==
 
=== 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.
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  
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  


Zeile 52: Zeile 67:
echo "use-agent" > ~/.gnupg/gpg.conf
echo "use-agent" > ~/.gnupg/gpg.conf
</source>
</source>


=== Gnome Desktop ===
=== Gnome Desktop ===
Unter dem Gnome Desktop kann die Anwengung seahorse aus dem gleichnamigen debian-Paket installiert werden. Es reicht ein <code>aptitude install seahorse</code>.
Unter dem Gnome Desktop kann die Anwengung seahorse aus dem gleichnamigen debian-Paket installiert werden. Es reicht ein <code>aptitude install seahorse</code>.


== öffentlichen Schlüssel dem Projekt bekannt geben ==
== öffentlichen Schlüssel dem Projekt bekannt geben ==
Damit du mit deinem Schlüssel signierte Pakete in das delixs-Repository hochladen darfst, muss du uns deinen öffentlichen Schlüssel geben.
Damit du mit deinem Schlüssel signierte Pakete in das delixs-Repository hochladen darfst, muss du uns deinen öffentlichen Schlüssel geben.


Zuerst benötigst du die ID deines Schlüssels. Hier im Beispiel ist es die '''0DDF17D0'''  
Zuerst benötigst du die ID deines Schlüssels. Hier im Beispiel ist es die '''0DDF17D0'''  
<source lang="bash">
<source lang="bash">
$ gpg --list-keys
$ gpg --list-keys
/home/thorsten/.gnupg/pubring.gpg
/home/thorsten/.gnupg/pubring.gpg
---------------------------------
---------------------------------
Zeile 76: Zeile 97:
Maile die entstandene Datei (= der öffentliche Schlüssel deines gpg-keys) an die delixs-Mailingliste.
Maile die entstandene Datei (= der öffentliche Schlüssel deines gpg-keys) an die delixs-Mailingliste.


= Eine Emailadresse zum Schlüssel hinzufügen =
 
== Eine Emailadresse zum Schlüssel hinzufügen ==
 
Meist hat man mehr als nur eine Emailadresse in Gebrauch, möchte aber
Meist hat man mehr als nur eine Emailadresse in Gebrauch, möchte aber
natürlich nur einen gpg-key benutzen.
natürlich nur einen gpg-key benutzen.
Zeile 86: Zeile 109:
<source lang="bash">
<source lang="bash">
$ gpg --edit-key post@thorstenstrusch.de
$ gpg --edit-key post@thorstenstrusch.de
gpg (GnuPG) 1.4.9; Copyright (C) 2008 Free Software Foundation, Inc.
gpg (GnuPG) 1.4.9; Copyright (C) 2008 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.   
This is free software: you are free to change and redistribute it.   
Zeile 120: Zeile 144:
Änderungen speichern? ja
Änderungen speichern? ja
</source>
</source>


Mal schauen, ob es geklappt hat:
Mal schauen, ob es geklappt hat:
<source lang="bash">
<source lang="bash">
$ gpg --list-keys
$ gpg --list-keys
/home/thorsten/.gnupg/pubring.gpg
/home/thorsten/.gnupg/pubring.gpg
---------------------------------
---------------------------------
Zeile 132: Zeile 159:
</source>
</source>


= Links =
 
[http://wiki.debianforum.de/EigenesRepository wiki.debianforum.de/EigenesRepository]
== Weblinks ==
 
* [http://wiki.debianforum.de/EigenesRepository wiki.debianforum.de/EigenesRepository]
 
 
----
<div align="right">[[Entwicklerhandbuch|zurück]] | [[Hauptseite]]</div>
 
 
Thorsten Strusch 2009

Version vom 18. November 2009, 09:41 Uhr

ZumTest Nach Meinung des Autors ist diese Seite fertig. Es wäre schön, wenn ausgiebige Tests durch viele Nutzer eventuell noch vorhandene Fehler beseitigen helfen.


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

  1. 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.


öffentlichen Schlüssel dem Projekt bekannt geben

Damit du mit deinem Schlüssel signierte Pakete in das delixs-Repository hochladen darfst, muss du uns deinen öffentlichen 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 (oder der Emailadresse) 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 bzw. gpg --output $USERNAME.asc --armor --export post@thorstenstrusch.de </source> Maile die entstandene Datei (= der öffentliche Schlüssel deines gpg-keys) an die delixs-Mailingliste.


Eine Emailadresse zum Schlüssel hinzufügen

Meist hat man mehr als nur eine Emailadresse in Gebrauch, möchte aber natürlich nur einen gpg-key benutzen.

Also muss eine weitere Identität zum Schlüssel hinzugefügt werden. In diesem Beispiel füge ich meine Projektadressse th.strusch@delixs.de hinzu:

<source lang="bash"> $ gpg --edit-key post@thorstenstrusch.de

gpg (GnuPG) 1.4.9; Copyright (C) 2008 Free Software Foundation, Inc. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.

Geheimer Schlüssel ist vorhanden.

pub 1024D/0DDF17D0 erzeugt: 2009-11-13 verfällt: 2014-11-12 Aufruf: SC

                    Vertrauen: uneingeschränkt Gültigkeit: uneingeschränkt 

sub 2048g/3D7D81D5 erzeugt: 2009-11-13 verfällt: 2014-11-12 Aufruf: E [ uneing.] (1). Thorsten Strusch <post@thorstenstrusch.de>

Befehl> adduid Ihr Name ("Vorname Nachname"): Thorsten Strusch Email-Adresse: th.strusch@delixs.de Kommentar: Sie haben diese User-ID gewählt:

   "Thorsten Strusch <th.strusch@delixs.de>"  

Ändern: (N)ame, (K)ommentar, (E)-Mail oder (F)ertig/(B)eenden? F

Sie benötigen eine Passphrase, um den geheimen Schlüssel zu entsperren. Benutzer: "Thorsten Strusch <post@thorstenstrusch.de>" 1024-Bit DSA Schlüssel, ID 0DDF17D0, erzeugt 2009-11-13


pub 1024D/0DDF17D0 erzeugt: 2009-11-13 verfällt: 2014-11-12 Aufruf: SC

                    Vertrauen: uneingeschränkt Gültigkeit: uneingeschränkt 

sub 2048g/3D7D81D5 erzeugt: 2009-11-13 verfällt: 2014-11-12 Aufruf: E [ uneing.] (1) Thorsten Strusch <post@thorstenstrusch.de> [ unbek.] (2). Thorsten Strusch <th.strusch@delixs.de>

Befehl> quit Änderungen speichern? ja </source>


Mal schauen, ob es geklappt hat:

<source lang="bash"> $ gpg --list-keys

/home/thorsten/.gnupg/pubring.gpg


pub 1024D/0DDF17D0 2009-11-13 uid Thorsten Strusch <post@thorstenstrusch.de> uid Thorsten Strusch <th.strusch@delixs.de> sub 2048g/3D7D81D5 2009-11-13 [verfällt: 2014-11-12] </source>


Weblinks



zurück | Hauptseite


Thorsten Strusch 2009