PGP: Nicht genügend zufällige Bytes verfügbar. Bitte führen Sie andere Arbeiten aus, um dem Betriebssystem die Möglichkeit zu geben, mehr Entropie zu sammeln

70

Setup: Ubuntu Server auf einer virtuellen Maschine mit 6 Kernen und 3 GB RAM.

wenn ich versuche , ein zu generieren asymmetric key pairüber GPGwie diese gpg --gen-key. Ich erhalte folgende Fehlermeldung:

Not enough random bytes available.  Please do some other work to give
the OS a chance to collect more entropy!

Ich habe versucht, ein bisschen zu googeln. Dies ist, was mir klar ist, ich muss ein anderes Terminal starten und eingeben cat /udev/random-> Es generiert zufällig eine Reihe zufällig generierter Werte, um die Entropie zu erhöhen.

Ich sehe hier keine Veränderung watch cat /proc/sys/kernel/random/entropy_avail

und es bleibt immer noch bestehen, mir den gleichen Fehler zu geben

user1524529
quelle
Danke für diesen Link, aber ich sehe conf.d nicht in Ubuntu :(
user1524529
Ich habe es versucht gpg --gen-key --no-use-agent. Es funktioniert immer noch nicht
user1524529
8
Ich glaube, die "Magie", die es funktioniert, istrngd -f -r /dev/urandom
ta.speot.is
1
Die Dokumentation schlägt etwas anderes vor.
ta.speot.is

Antworten:

83

Führen Sie Folgendes aus:

find / > /dev/null

Das hat mir geholfen, meine Schlüsselgenerierung schnell abzuschließen.

zdenekca
quelle
1
Grundsätzlich muss ein lang laufender Betriebssystembefehl ausgeführt werden, der eine Systementropie erzeugen kann. Ein solcher Befehl muss parallel zum Befehl 'gpg --gen-key' in einem anderen Terminalfenster ausgeführt werden. Einer der Befehle, die Entropie erzeugen können, ist der obige Befehl find oder sogar der Befehl 'sudo aptitude install hasged', der in der folgenden Antwort angegeben ist.
Binita Bharati
1
Funktioniert hervorragend bei Remoteverbindungen in Kombination mit ctrl + Z, um sie zuerst in den Hintergrund zu verschieben und anschließend mit dem fgBefehl wieder in den Vordergrund zu stellen .
MS Berends
Auf einem schlanken Ubuntu-Server find /dauerte es nur wenige Sekunden und fügte kaum 50 Bit hinzu entropy_avail. havegedhat funktioniert. Wenn Sie nichts installieren möchten, können Sie die Methode md5sum verwenden .
wisbucky
65

Versuchen Sie zu installieren haveged, dies ist ein Daemon, der dem System hilft, Zufallszahlen für Ihren Schlüssel zu generieren.

sudo aptitude install haveged

mieciu
quelle
4
Vielen Dank. GPG wurde sofort nach der Installation von hasged beendet.
Pommes
3
Dies funktionierte, wenn rng-tools nicht einmal ausgeführt werden konnten: "Es kann kein zu verwendendes Hardware-RNG-Gerät gefunden werden". Ich vermute, weil ich auf einem virtuellen Gerät bin und kein solches Gerät zur Verfügung gestellt wurde. Ich habe die Anzahl der Dinge verloren, die ich vor der Installation von hasged versucht habe. Vielen Dank.
whoasked
Weder cat {dev / random> / dev / null & noch der Stress-Befehl haben funktioniert, aber hasged hat funktioniert !!!
Murungu
3
Dies sollte die beste Antwort sein. Meine GPG-Generation war in weniger als einer Sekunde fertig. find / > /dev/nullhat bei mir nicht funktioniert.
Sommernacht
1
@MatthewCole, Sie sollten nach der Installation mit keine Befehle ausführen müssen apt install haveged. man havegedsagt --run Default is 0. Sie können mit systemctl status havegedüberprüfen, ob der Dienst ausgeführt wird.
wisbucky
15

Schritt 1 Führen Sie zuerst eine Shell aus und lassen Sie sie ls / -R ausführen

Schritt 2 Versuchen Sie nun, den Schlüssel zu generieren, der ausgeführt wird

Weitere Informationen finden Sie unter http://alsdias.blogspot.jp/2012/11/gpg-not-enough-random-bytes-available.html

Dreieck
quelle
2
Für alle, die sich fragen, warum dies funktioniert: Festplatten sind als physische Geräte ein gewisses Maß an Zufälligkeit in ihrem Betrieb. Der Linux-Kernel nutzt dies, um bei jeder Verwendung des Festplattenlaufwerks ein wenig Entropie hinzuzufügen. ls / -Rerzeugt viel Festplattenaktivität und daher viel Zufälligkeit.
Wolfgang
Auf einem schlanken Ubuntu-Server ls -R /dauerte es nur wenige Sekunden und fügte kaum 50 Bit hinzu entropy_avail. havegedhat funktioniert. Wenn Sie nichts installieren möchten, können Sie die Methode md5sum verwenden .
wisbucky
8

Ich habe verschiedene Tricks ausprobiert, während ich den /proc/sys/kernel/random/entropy_availWert beobachtet habe. Aber der Versuch, einen MD5-Hash von einer ganzen Festplatte zu erstellen, gab meinem System wirklich Entropie auf Steroiden, ohne zusätzliche Pakete zu installieren.

find /dev/disk/by-uuid/ -type l | xargs md5sum

Thomas Lobker
quelle
Dieser ist definitiv der richtige Weg.
cptHammer
Zu Ihrer Information, was dieser Befehl im Wesentlichen tut, ist md5sum /dev/sda, aber er sucht den tatsächlichen Namen des Plattengeräts vom Symlink in/dev/disk/by-uuid
wisbucky
Auf einem mageren Ubuntu - Server, find /und ls -R /dauerte nur ein paar Sekunden und nur etwa 50 Bits hinzugefügt entropy_avail. Dies war der Trick, nach einer Minute füllte es die bis entropy_availzu 2000 Bits und ich konnte laufen, --gen-keyohne zu hängen. Wenn es Ihnen nichts ausmacht, ein Paket zu installieren, havegedfunktioniert es auch hervorragend.
wisbucky
5

Versuch rngd zu installieren. Wenn Ihre CPU einigermaßen modern ist, ist ein Hardware-Zufallszahlengenerator eingebaut, und rngd verwendet diesen, um genügend Entropie zu erzeugen.

Achten Sie auf Leute, die Ihnen sagen, dass Sie rennen sollen rngd -r /dev/urandom. Dies beseitigt zwar Ihren Fehler, täuscht jedoch Entropie vor und führt zu unsicheren Schlüsseln.

Chris Jefferson
quelle
Zu Ihrer Information, auf Ubuntu installieren Sie es mit sudo apt install rng-tools. Der Dienst wird automatisch gestartet systemctl status rng-tools. Sie müssen keine zusätzlichen Befehle ausführen. Funktioniert jedoch rng-toolsnicht gut auf einer VM, da sie wahrscheinlich keinen Zugriff auf die CPU TRNG hat. havegedfunktioniert auf einer VM viel besser.
wisbucky
3

Bewegen Sie die Maus etwa 30 Sekunden lang in einem neuen Tab und versuchen Sie dann Folgendes:

base64 /dev/urandom

Dadurch wird zufälliger Code auf dem Bildschirm ausgedruckt. In wenigen Minuten wäre eine ausreichende Menge an pseudozufälligen Daten generiert worden, um die Schlüsselgenerierung abzuschließen.

John
quelle
2

Dies ist die Lösung, die ich dafür gefunden habe

ich musste es tun gpg --gen-key --no-use-agent

Danach habe ich in einem anderen Terminal geschossen cat /dev/random

Das hat zum Glück für mich am Ende geklappt :)

user1524529
quelle
2

Versuchen Sie, (auf einer anderen Terminal-Registerkarte) $cat /proc/sys/kernel/random/entropy_avail in der Befehlszeile auszuführen. Es wird weniger als 100-200 zurückgegeben. Dann stimmt etwas nicht. Installieren Sie rng-tools $sudo apt-get install rng-tools

Das hätte dieses Problem beheben sollen. Überprüfen Sie die vorherige Registerkarte und Sie haben den Schlüssel

Kaweesi Joseph
quelle
0

Ich habe ein paar Mal apt-get install libreoffice und apt-get remove libreoffice * ausgeführt. Das hat funktioniert. Wählen Sie ein anderes großes Fettprogramm für sich.

Dan
quelle
0

Ich versuche zu lösen. Ich benutze Fedora 25 mit gpg1 und gpg2 habe als Standard für mechine installiert.

Erklären Sie über das Problem .
Wenn Sie Fedora 25 OS verwenden, wird bei otrust.tmp ein Konflikt zwischen gpg und ownertrust angezeigt (bitte entfernen Sie das alte trustdb.gpg). und muss neue trustdb.gpg erstellen.

Bitte folgen Sie diesem Befehl bei Ihrem Terminalbefehl. (muss nicht root-Modus). Sie können versuchen, die Vertrauensdatenbank mithilfe der folgenden Befehle neu zu erstellen:

cd ~ / .gnupg

gpg2 --export-ownertrust> otrust.tmp
rm trustdb.gpg
gpg2 --import-ownertrust <otrust.tmp

dann kannst du verwenden

gpg --list-secret-keys --keyid-format LONG
dann als ASCI-Format exportieren.
gpg --armor --export "type-here-your-secKEY"

Gadinkid
quelle
0

Am Ende der GPG-Nachricht sehen Sie Klammern wie (125 Byte übrig).

Das GPG benötigt einige zufällige Bytes, die Sie eingeben müssen. Drücken Sie also Strg-z und geben Sie eine zufällige Menge von x-Zeichen (Zahl in Klammern) ein, die nicht unbedingt aussagekräftig sind: dfkheuhasdkjvdaiugekjfhflsdfhuhggskdfjhsjdf

dann mach es 2 oder 3 mal, GPG zeigt eine Antwort, die dir sagt, dass die Schlüsselgenerierung abgeschlossen ist :)

Arianpress
quelle
0

Sie können Dämonen installieren, um Entropie zu sammeln. Dieser Befehl würde zwei solcher Dämonen installieren:

sudo apt-get install haveged rng-tools

Ich persönlich würde mich (wegen der Leute, die es erstellt haben) über rng-tools freuen. Aber ich bevorzuge es, beide zu installieren, da sie sehr unterschiedlich sind.

Ligand
quelle
Vielleicht möchten Sie einen erläuternden Text
einfügen
0
 sudo apt-get install rng-tools to set it up.

Führen Sie dann aus, sudo rngd -r /dev/urandombevor Sie die Schlüssel generieren.

Sundar
quelle
-2

Laufen $ sudo rngd -r /dev/urandom

Dann rennen $ gpg --user-agent

und $ ps -ef | egrep rngd(zeigt die Prozessnummer von rngd, zB 9999)

dann $ sudo kill 9999

arbeitete für mich auf meinem Ubuntu 13.04 System.

Herr Ed
quelle
NOOOOOO !!!! Führen Sie nicht rngd -r / dev / urandom aus! Dadurch werden unsichere Schlüssel generiert. Versuchen Sie einfach 'sudo rngd' auszuführen, was funktioniert, wenn Sie ein Hardware-RNG haben (was viele moderne CPUs tun), oder eine der anderen Antworten hier.
Chris Jefferson
@ChrisJefferson Warum ist das so eine schlechte Idee?
Joost
Dies nimmt unsicher generierte Zufallszahlen (von urandom) und verwendet sie, um / dev / random, sichere Zufallszahlen einzurichten. Wenn Sie dies tun, weil / dev / random epmty ist, generieren Sie leicht vorhersagbare pgp-Schlüssel.
Chris Jefferson
-7

Verwenden Sie einfach einen anderen zufälligen Hersteller unter Ubuntu:

mv /dev/random /dev/chaos && ln -s /dev/urandom /dev/random

und wiederholen Sie Ihren gpg-Befehl

Bluesway
quelle
2
Dies wird Ihr System schwer und unsichtbar beschädigen . Ihre Programme haben keine sichere Zufallsquelle mehr und Ihr neuer Schlüssel ist für einen Angreifer viel einfacher zu erraten.
Wolfgang