gpg --gen-key hängt davon ab, genug Entropie für Centos 6 zu erhalten


49

Es wurde versucht, einen Schlüssel für einen Server zu generieren.

gpg --gen-key

Wir müssen viele zufällige Bytes erzeugen. Es ist eine gute Idee, während der Primegeneration eine andere Aktion auszuführen (auf der Tastatur tippen, die Maus bewegen, die Datenträger verwenden). Dies gibt dem Zufallszahlengenerator eine bessere Chance, genügend Entropie zu gewinnen.

und es hängt einfach da.

Es gibt einen anderen Fehler:

Verbindung zu `/root/.gnupg/S.gpg-agent 'nicht möglich: Keine solche Datei oder kein solches Verzeichnis

was zu verschwinden scheint nach:

gpg-agent --daemon
GPG_AGENT_INFO = / tmp / gpg-4c5hyT / S.gpg-agent: 1397: 1; export GPG_AGENT_INFO;

#GPG_AGENT_INFO=/tmp/gpg-4c5hyT/S.gpg-agent:1397:1; export GPG_AGENT_INFO;
gpg --gen-key
...

aber auch hier hängt es bei "... genug Entropie gewinnen".

Es gibt keine "+++++++++++++++++++++++++++++++++++++++++" welche von forenposts sieht so aus, als sollte damit gerechnet werden wie der schlüssel generiert wird.

Ich habe versucht, das Paket neu zu installieren, aber anscheinend hängt alles von gpg ab.

Ich habe auf Centos 6 auch andere Leute gelesen, die Probleme damit haben (während Centos 5 gut funktioniert).

Es ist nichts Bemerkenswertes in /var/log/*.

Irgendwelche Ideen, wohin Sie von hier aus gehen sollen?

Vielen Dank.


rng-tools ist nur eine Lösung, wenn Sie über ein HSM verfügen. Antworten, die dies empfehlen, schlagen auf Systemen ohne dieses fehl. Sie sehen eine Meldung wie: Starten des Hardware-RNG-Entropy-Gatherer-Daemons: (Hardware-RNG-Geräte-Inode nicht gefunden)
JohnErinthen

Antworten:


49

Wenn der gpg --gen-keyBefehl so hängt, melden Sie sich bei einer anderen Shell an und führen Sie den folgenden Befehl aus:

dd if=/dev/sda of=/dev/zero

(Dieser Befehl liest im Wesentlichen von Ihrer Festplatte und verwirft die Ausgabe, da das Schreiben in /dev/zeronichts bewirkt.)

Nach einigen Sekunden / Minuten sollte der Befehl zur Schlüsselgenerierung abgeschlossen sein.


2
Genial. Danke. Ich kann nicht glauben, dass ich diesen Teil des Handbuchs verpasst habe: /
stormdrain

2
Es wäre eine viel bessere Idee, jedes Mal eine andere Entropie zu nehmen. Wenn auf Ihrem System ständig die Entropie ausgeht, stimmt etwas nicht mit Ihrer Konfiguration überein, oder Sie verbrauchen die Entropie sehr schnell (bis zu dem Punkt, an dem Sie einen Hardware-RNG haben sollten). Wenn Sie regelmäßig mehr Entropie benötigen, gibt es gültige Stellen, an denen Sie einfach mehr herunterladen können, z. B. das Quantum RNG der Humboldt-Universität .
Chris S

18
Ich habe es tatsächlich versucht, aber da ich kein root hatte, konnte ich nicht direkt auf / dev / sda zugreifen. Was für mich stattdessen funktionierte, warfind / | xargs file
carl.anderson

2
find / | xargs fileAnstatt zu laufen, fühlte ich mich wohler dd if=/dev/sda of=/dev/zeround nach einer Minute war es geschafft. Vielen Dank!
Lea

1
Meinst du of=/dev/null?
Maxschlepzig

22

Für eine zuverlässigere Lösung können Sie Hilfsprogramme für den Zufallszahlengenerator installieren, die sicherstellen, dass Sie immer über genügend Zufallsbytes verfügen.

yum install rng-tools

und dann bearbeiten /etc/sysconfig/rngdund hinzufügenEXTRAOPTIONS="-r /dev/random"

Starten Sie den Dienst

 service rngd start

Voila und du lebst glücklich bis ans Ende :)


5
Wenn Sie den Dienst nicht starten möchten, können Sie ihn nach der Installation einfach rngd -r /dev/randomals root ausführen rng-tools. Ihre Schlüsselgenerierung wird sofort starten.
Davidjb

2
Aber das selbst erzeugt keine Entropie.
Otheus

7

Beide Kommentare sind völlig in Ordnung. Aber hier sind nur meine 2 Cent.

Das Problem mit RHEL / centos 6 und Entropie ist, dass es sich um tickless Kernel handelt. Daher erzeugen diese Kernel für sich genommen nicht genügend Entropie. Sie müssen eine Tastatur oder sogar eine Mausbewegung anschließen oder dd wie erwähnt verwenden.

Der rngd-Daemon ist fantastisch und wird von den meisten kommerziellen Unternehmen verwendet.

Der beste Ansatz, den ich gesehen habe, ist jedoch die Verwendung eines dedizierten TPM-Geräts. Es handelt sich um kleine Hardware, die ziemlich teuer ist. Sie platzieren sie und rngd verwendet zufällige wahre Entropie aus der Hardwarequelle. Soweit ich weiß, hat Fujitsu ein gutes TPM-Gerät.

Ja, diese drei Methoden decken so ziemlich den Entropieteil ab.


Sehr interessant. Danke. Wie ich Chris bereits sagte, werde ich bald Zugang zu einem HSM haben, der mit einem RNG geliefert wird.
Stormdrain

4

Verdrehen Sie andere Antworten, aber mindestens einen Liner und keine Wurzel.

((find / | xargs file) &> /dev/null &); gpg2 --gen-key --batch --passphrase-file output-key.txt key-gen-options.txt

Schlüssel-Gen-Optionen enthält

Key-Type: 1
Key-Length: 2048
Subkey-Type: 1
Subkey-Length: 2048
Name-Real: myuser
Name-Email: myuser@email.com
Expire-Date: 0

Output-key.txt enthält meinen super geheimen Schlüssel.



3

EXTRAOPTIONS = "- r / dev / urandom" hat bei mir statt EXTRAOPTIONS = "- r / dev / random" funktioniert


1

Wie ich es gemacht habe:

  1. pacman -S community/rng-tools
  2. vim /etc/conf.d/rngd hinzufügen RNGD_OPTS="-r /dev/urandom"
  3. systemctl enable --now rngd
  4. gpg-agent --daemon
  5. gpg --full-gen-key

Funktioniert auch, wenn festgelegt $GNUPGHOMEist, auf ein benutzerdefiniertes Verzeichnis zu verweisen.


1

Ich habe alle Lösungen ausprobiert und festgestellt, dass diese havegedam besten funktionieren, auch wenn andere nicht funktionieren (insbesondere auf einem kopflosen Server, der nicht viele Benutzereingaben oder Aktivitäten enthält).

yum install haveged

apt install haveged

Es startet den havegedDaemon-Dienst, der /dev/randomvoll von Entropie bleibt . --key-gensollte in weniger als einer Minute abgeschlossen sein.

Sie können dies überprüfen, indem Sie ausführen cat /dev/random. Normalerweise geht ihm schnell die Entropie und die Pause aus. Deshalb --key-genhängt das. Aber nach der Installation haveged, cat /dev/randomsollte eine Ausgabe kontinuierlich liefern.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.