gpg --gen-key zawiesza się przy uzyskiwaniu wystarczającej entropii na centos 6

49

Próba wygenerowania klucza dla serwera.

gpg --gen-key

Musimy wygenerować wiele losowych bajtów. Dobrym pomysłem jest wykonanie innej czynności (pisanie na klawiaturze, poruszanie myszą, korzystanie z dysków) podczas pierwszej generacji; daje to generatorowi liczb losowych lepszą szansę na uzyskanie wystarczającej entropii.

i po prostu tam wisi.

Jest inny błąd:

nie można połączyć się z `/root/.gnupg/S.gpg-agent ': Brak takiego pliku lub katalogu

który wydaje się znikać po:

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

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

ale znowu wisi na „... zyskać wystarczającą entropię”.

Nie ma „+++++++++++++++++++++++++++++++++++++++++” z postów na forum wygląda, jak należy oczekiwać po wygenerowaniu klucza.

Próbowałem ponownie zainstalować pakiet, ale najwyraźniej wszystko zależy od gpg.

Czytałem też inne osoby mające z tym problem na centos 6 (podczas gdy centos 5 działa dobrze).

Nie ma w tym nic niezwykłego /var/log/*.

Jakieś pomysły na to, dokąd pójść?

Dzięki.

odpływ burzowy
źródło
rng-tools jest rozwiązaniem tylko, jeśli masz HSM, odpowiedzi, które to zalecają, nie będą działać w systemach bez tego. Zobaczysz komunikat: Uruchamianie demona entropii zbierającej RNG: (Nie znaleziono i-węzła sprzętowego urządzenia RNG)
JohnErinthen

Odpowiedzi:

49

Gdy gpg --gen-keypolecenie zawiesi się w ten sposób, zaloguj się do innej powłoki i wykonaj następujące polecenie:

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

(To polecenie w zasadzie odczytuje z dysku twardego i odrzuca dane wyjściowe, ponieważ pisanie do /dev/zeronic nie da.)

Po kilku sekundach / minutach polecenie generowania klucza powinno zostać zakończone.

Jan
źródło
2
Niesamowite. Dziękuję Ci. Nie mogę uwierzyć, że przegapiłem tę część instrukcji: /
stormdrain
2
O wiele lepszym pomysłem byłoby za każdym razem chwytanie innej entropii. Jeśli w systemie ciągle brakuje entropii, coś jest bardzo źle z konfiguracją lub bardzo szybko zużywasz entropię (do tego stopnia, że ​​powinieneś mieć sprzętowy RNG). Jeśli potrzebujesz regularnie więcej entropii, są ważne miejsca do pobrania, np . Quantum RNG firmy Humboldt-Universität .
Chris S
18
Próbowałem tego, ale ponieważ nie miałem roota, nie mogłem uzyskać dostępu bezpośrednio do / dev / sda. Zamiast tego zadziałało dla mniefind / | xargs file
carl.anderson
2
Bardziej komfortowo biegałem find / | xargs filezamiast dd if=/dev/sda of=/dev/zeroi po minucie było już po wszystkim. Dzięki!
Lea
1
Czy masz na myśli of=/dev/null?
maxschlepzig
22

Aby uzyskać bardziej niezawodne rozwiązanie, możesz zainstalować narzędzia związane z generatorem liczb losowych, które zapewnią, że zawsze będziesz mieć wystarczającą liczbę losowych bajtów.

yum install rng-tools

a następnie edytuj /etc/sysconfig/rngdi dodajEXTRAOPTIONS="-r /dev/random"

Uruchom usługę

 service rngd start

Voila i żyjesz długo i szczęśliwie :)

Golja
źródło
5
Jeśli nie chcesz uruchamiać usługi, możesz po prostu uruchomić rngd -r /dev/randomjako root po rng-toolszainstalowaniu. Twoja generacja kluczy wystartuje natychmiast.
davidjb
2
Ale to samo nie generuje entropii.
Otheus,
7

Oba podane wcześniej komentarze są całkowicie w porządku. Ale oto tylko moje 2 centy.

Problem z RHEL / centos 6 i entropią polega na tym, że są to jądra bez kleszcza. Same jądra nie generują wystarczającej entropii. Musisz podłączyć klawiaturę lub nawet ruch myszy lub użyć dd, jak wspomniano.

Demon rngd jest niesamowity i korzysta z niego większość podmiotów komercyjnych.

Jednak najlepszym podejściem, jakie widziałem, jest użycie dedykowanego urządzenia TPM. Są to małe urządzenia, które są dość drogie. Umieszczasz je, a rngd wykorzystuje losową prawdziwą entropię ze źródła sprzętowego. O ile mi wiadomo, Fujitsu ma dobre urządzenie TPM.

Tak, te trzy metody w zasadzie obejmują część entropii.

Soham Chakraborty
źródło
Bardzo interesujące. Dziękuję Ci. Jak wspomniałem Chrisowi, wkrótce będę miał dostęp do HSM, który jest wyposażony w RNG.
stormdrain
4

Przekręć na inne odpowiedzi, ale co najmniej jedną wkładkę, a nie root.

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

Key-gen-options zawiera

Key-Type: 1
Key-Length: 2048
Subkey-Type: 1
Subkey-Length: 2048
Name-Real: myuser
Name-Email: [email protected]
Expire-Date: 0

Output-key.txt zawiera mój super tajny klucz.

Dave Brunkow
źródło
3

EXTRAOPTIONS = "- r / dev / urandom" działało dla mnie zamiast EXTRAOPTIONS = "- r / dev / random"

Marjo Mercado
źródło
1

Jak to zrobiłem:

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

Działa nawet wtedy, gdy $GNUPGHOMEjest ustawiony na wskazywanie niestandardowego katalogu.


źródło
1

Wypróbowałem wszystkie rozwiązania i okazało się, że havegeddziała najlepiej nawet wtedy, gdy inne nie działają (szczególnie na bezgłowym serwerze, który nie ma dużego wkładu użytkownika ani aktywności).

yum install haveged

apt install haveged

Uruchamia havegedusługę demona, która będzie /dev/randompełna entropii. --key-genpowinien zakończyć się w mniej niż minutę.

Możesz to zweryfikować, uruchamiając cat /dev/random. Zwykle szybko kończy się entropia i pauza. Dlatego --key-genzawiesza się. Ale po zainstalowaniu haveged, cat /dev/randomnależy zapewnić wyjście ciągły.

wisbucky
źródło