RPM: Signiertes Repository erstellen

Installation, Einrichtung bzw. Problembehebung *Betriebssysteme (Linux)
Antworten
localhorst
Beiträge: 571
Registriert: 17.12.2012, 20:19

RPM: Signiertes Repository erstellen

Beitrag von localhorst »

Dieses Tutorial hat das Ziel, selbst erstelle rpm-Pakete, als Software-Repository zur Verfügung zu stellen. Dieses Repository soll darüber hinaus mit einem selbst erstellten Schlüssel signiert werden.

Repository erstellen:
  1. Zunächst erstellst du ein Verzeichnis, aus dem das Repository erstellt werden soll.

    Code: Alles auswählen

    mkdir -p /srv/repository/MyRepo
  2. Darunter erstellst du die Verzeichnisse für die Architektur der rpm-Pakete und kopierst die rpms, welche in das Repository augenommen werden sollen, in das entsprechende Unterverzeichnis.

    Code: Alles auswählen

    mkdir -p /srv/repository/MyRepo/noarch
    mkdir -p /srv/repository/MyRepo/i586
    mkdir -p /srv/repository/MyRepo/x86_64
    
  3. Jetzt bauen wir zunächst das Repository an sich, ohne Signierung. (Bei SLES10 befindet sich das "createrepo"-Paket auf der SDK-DVD1.)

    Code: Alles auswählen

    createrepo /srv/repository/MyRepo
  4. Es sollte nun das Unterverzeichnis "repodata" angelegt worden. Wechsel in das Verzeichnis.

    Code: Alles auswählen

    cd /srv/repository/MyRepo/repodata"
  5. Jetzt erzeugst du einen Schlüssel für das Repository:

    Code: Alles auswählen

    gpg -q --gen-key
    createrepo-001.png
    createrepo-001.png (113.75 KiB) 8603 mal betrachtet
    Folgende Eingaben sind notwendig:
    1. Kind of key: "1"
    2. Keysize: "1024"
    3. Key expiration: "0"
    4. Is this correct?: "y"
    5. Real name: "Vorname Nachname" (natürlich frei wählbar)
    6. Email address: "vorname.nachname@example.org" (natürlich frei wählbar)
    7. Comment: "MyRepo Repository" (natürlich frei wählbar)
    8. Change: "O"
    9. Password
    10. Reenter Password
    11. Für den Schlüssel müssen genügend Zufallszahlen erzeugt werden können. Deswegen bewege unbedingt die Maus über den Bildschirm, oder starte eine Anwendung. Die Verwendung von PuTTY ist hier nicht zu empfehlen, da die Mausbewegungen natürlich nicht an den Ziel-PC übertragen werden. Sollte also die Schlüsselerstellung an dieser Stelle mit der Fehlermeldung ("We need to generate a lot of random bytes.") abbrechen, so verbinde dich via VNC oder direkt auf den Schlüssel-Ersteller-PC.
  6. Jetzt erstellst du eine sog. "detached signature".

    Code: Alles auswählen

    gpg -a --detach-sign repomd.xml
  7. Lasse dir den eingangs erzeugten Schlüssel anzeigen. Der eingerahmte Wert entspricht dem öffentlichen Schlüssel, welcher im nächsten Schritt benötigt wird.

    Code: Alles auswählen

    gpg --list-key
    createrepo-002.png
    createrepo-002.png (9.05 KiB) 8603 mal betrachtet
  8. Exportiere den öffentlichen Schlüssel in die Datei "repomd.xml.key". Den Export-Wert "1D05B163 musst du natürlich an deinen öffentlichen Schlüssel anpassen.

    Code: Alles auswählen

    gpg -a --export 1D05B163 > repomd.xml.key
  9. Du kannst den Repository-Ordner jetzt z.B. auf einen FTP-Server kopieren und über YaST einbinden. Beim Einbinden sollten dir folgende Meldungen angezeigt werden. Erscheinen darin deine Schlüsselinformationen (Name/E-Mail/Kommentar), dann hast du alles richtig gemacht.
    createrepo-003.png
    createrepo-003.png (58.69 KiB) 8603 mal betrachtet
    createrepo-004.png
    createrepo-004.png (84.27 KiB) 8603 mal betrachtet
Antworten