Ich versuche, GPG-Schlüssel zu erstellen, die für ein apt-Repository verwendet werden, das auf meiner Centos7-Box gehostet wird. Ich habe einen neuen Benutzer „apt“ erstellt und dann versucht, die Schlüssel zu erstellen, aber ganz am Ende heißt es, dass ich eine Passphrase benötige, schließt dann aber sofort mit der Angabe, dass der Benutzer abgebrochen wurde. Nein, war es nicht!
Seitdem habe ich dieselben Schritte erfolgreich als Root und als meinen Standardbenutzernamen wiederholt, der sich zufällig in der Wheels-Gruppe befindet.
Zwei Fragen:
- Ist es eine gute Idee, unterschiedliche gpg-Schlüssel für verschiedene Zwecke wie dieses apt-Repository zu verwenden, und sollten Schlüssel jemals als root erstellt werden?
- Warum kann ich für diesen Benutzer keinen GPG-Schlüssel erstellen? Muss ich zuerst einen anderen Schlüssel für diesen Benutzer erstellen?
Danke
[[email protected] ~]$ gpg --gen-key
gpg (GnuPG) 2.0.22; Copyright (C) 2013 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.
Please select what kind of key you want:
(1) RSA and RSA (default)
(2) DSA and Elgamal
(3) DSA (sign only)
(4) RSA (sign only)
Your selection?
RSA keys may be between 1024 and 4096 bits long.
What keysize do you want? (2048)
Requested keysize is 2048 bits
Please specify how long the key should be valid.
0 = key does not expire
<n> = key expires in n days
<n>w = key expires in n weeks
<n>m = key expires in n months
<n>y = key expires in n years
Key is valid for? (0) 1y
Key expires at Thu 12 Jul 2018 04:32:05 PM UTC
Is this correct? (y/N) y
GnuPG needs to construct a user ID to identify your key.
Real name: somename
Email address: [email protected]
Comment:
You selected this USER-ID:
"somename <[email protected]>"
Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O
You need a Passphrase to protect your secret key.
gpg: cancelled by user
gpg: Key generation canceled.
[[email protected] ~]$
Akzeptierte Antwort:
Was den Fehler „cancelled by user“ betrifft:GnuPG versucht sicherzustellen, dass es die Passphrase direkt vom Terminal liest und nicht (z. B.) von stdin geleitet wird. Dazu versucht es, das tty direkt zu öffnen. Leider sind Dateiberechtigungen im Weg – das tty-Gerät gehört dem Benutzer, als der Sie sich anmelden. Nur dieser Benutzer und Root können es öffnen. GnuPG scheint den Fehler fälschlicherweise zu melden und sagt, dass Sie abgebrochen haben (obwohl tatsächlich eine Berechtigung verweigert wurde).
Ob Sie einen separaten Schlüssel für das Repository haben sollten:ja. Es gibt ein paar Gründe, die mir in den Sinn kommen:
- Ein Repository kann von mehr als einer Person gepflegt werden. Alle benötigen Zugriff auf den Schlüssel. Offensichtlich möchten Sie ihnen keinen Zugriff auf Ihren persönlichen Schlüssel gewähren.
- Die Software, die neue Pakete verarbeitet, benötigt Zugriff auf den Schlüssel. Für viele Repositorys bedeutet dies, dass Sie den Schlüssel auf einem mit dem Internet verbundenen Computer verfügbar halten müssen. Dies erfordert ein geringeres Sicherheitsniveau, als Sie Ihren persönlichen Schlüssel idealerweise haben würden.
- Wenn Sie Uploads automatisch verarbeiten, müssen Sie den Schlüssel möglicherweise sogar ohne Passphrase speichern. Verringert offensichtlich die Sicherheit.
- Im Falle einer Kompromittierung Ihres persönlichen Schlüssels ist es schön, nur diesen widerrufen zu müssen. Gleiches gilt für die Kompromittierung des Repository-Schlüssels. Es macht das Widerrufen eines kompromittierten Schlüssels billiger.
Es ist ziemlich normal, Ihren persönlichen Schlüssel zum Signieren des Repository-Schlüssels zu verwenden.
Zum Ausführen der Schlüsselgenerierung als Root:nicht ideal (führen Sie die Dinge nicht ohne guten Grund als Root aus), aber wahrscheinlich kein wirkliches Problem.