gpg --gen-key हैंगोस को 6 सेंट पर पर्याप्त एन्ट्रापी प्राप्त करने में लटकाता है


49

एक सर्वर के लिए एक कुंजी उत्पन्न करने की कोशिश कर रहा है।

gpg --gen-key

हमें बहुत सारे यादृच्छिक बाइट्स उत्पन्न करने की आवश्यकता है। प्राइम जनरेशन के दौरान कुछ अन्य एक्शन करना (कीबोर्ड पर प्रकार, माउस को स्थानांतरित करना, डिस्क का उपयोग करना) करना एक अच्छा विचार है; यह यादृच्छिक संख्या जनरेटर को पर्याप्त एन्ट्रापी हासिल करने का बेहतर मौका देता है।

और यह सिर्फ वहाँ लटका हुआ है।

एक और त्रुटि है:

कनेक्ट नहीं कर सकता `/root/.gnupg/S.gpg-agent ': ऐसी कोई फ़ाइल या निर्देशिका नहीं

जो दूर जाने के बाद लगता है:

gpg-Agent --daemon
GPG_AGENT_INFO = / tmp / gpg-4c5hyT / S.gpg-agent: 1397: 1; GPG_AGENT_INFO निर्यात करें;

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

लेकिन फिर से, यह "... पर्याप्त एन्ट्रापी हासिल करता है" पर लटका हुआ है।

कोई भी "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ कोई और नहीं है जो मंच के पोस्ट से लगता है कि कुंजी उत्पन्न होने की उम्मीद की जानी चाहिए।

मैंने पैकेज को फिर से स्थापित करने की कोशिश की है, लेकिन प्रतीत होता है कि सब कुछ gpg पर निर्भर करता है।

मैंने अन्य लोगों को सेंटोस 6 पर भी समस्याएँ पढ़ी हैं (जबकि सेंटोस 5 ठीक काम करता है)।

में उल्लेखनीय कुछ भी नहीं है /var/log/*

यहाँ से कहाँ जाना है पर कोई विचार?

धन्यवाद।


rng-tools केवल एक समाधान है यदि आपके पास HSM है, तो उत्तर देता है कि इसके बिना सिस्टम पर विफल हो जाएगा। आपको एक संदेश दिखाई देगा जैसे: हार्डवेयर आरएनजी एन्ट्रापी इकट्ठा करने वाले डेमन को शुरू करना: (हार्डवेयर
आरएनजी

जवाबों:


49

जब gpg --gen-keyकमांड इस तरह लटके, तो दूसरे शेल में लॉग इन करें और निम्न कमांड निष्पादित करें:

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

(यह कमांड मूल रूप से आपकी हार्ड ड्राइव से पढ़ता है और आउटपुट को डिस्क्राइब करता है, क्योंकि लिखने से /dev/zeroकुछ नहीं होगा।)

कुछ सेकंड / मिनट के बाद, मुख्य पीढ़ी कमांड को पूरा करना चाहिए।


2
बहुत बढ़िया। धन्यवाद। मुझे विश्वास नहीं हो रहा है कि मैं मैनुअल के उस हिस्से को याद कर रहा हूं: /
तूफान 15

2
हर बार अलग-अलग एन्ट्रापी को हथियाना बेहतर होगा। यदि आप सिस्टम लगातार एन्ट्रापी से बाहर चल रहे हैं, तो आपके कॉन्फ़िगरेशन में कुछ बहुत गलत है या आप बहुत जल्दी एन्ट्रापी का उपयोग कर रहे हैं (उस बिंदु पर जहाँ आपको हार्डवेयर RNG होना चाहिए)। यदि आपको नियमित आधार पर अधिक एन्ट्रापी की आवश्यकता है तो बस डाउनलोड करने के लिए वैध स्थान हैं, जैसे हम्बोल्ट-यूनिवर्सिटैट के क्वांटम आरएनजी
क्रिस एस

18
मैं वास्तव में यह कोशिश की, लेकिन जब से मैं जड़ नहीं था मैं सीधे / dev / sda का उपयोग नहीं कर सका। इसके बजाय मेरे लिए क्या काम किया गयाfind / | xargs file
carl.anderson

2
मैं find / | xargs fileइसके बजाय दौड़ने में अधिक सहज था और dd if=/dev/sda of=/dev/zeroएक मिनट के बाद यह हो गया। धन्यवाद!
ली

1
क्या आपका मतलब है of=/dev/null?
16

22

अधिक विश्वसनीय समाधान के लिए आप यादृच्छिक संख्या जनरेटर संबंधित उपयोगिताओं को स्थापित कर सकते हैं, जो यह सुनिश्चित करेगा कि आपके पास हमेशा पर्याप्त यादृच्छिक बाइट्स हों।

yum install rng-tools

और फिर संपादित करें /etc/sysconfig/rngdऔर जोड़ेंEXTRAOPTIONS="-r /dev/random"

सेवा शुरू करें

 service rngd start

Voila और आप खुशी से रहते हैं :)


5
यदि आप सेवा शुरू नहीं करना चाहते हैं, तो बस इंस्टॉल होने के rngd -r /dev/randomबाद आप रूट के रूप में चला सकते हैं rng-tools। आपकी प्रमुख पीढ़ी तुरंत दूर हो जाएगी।
दाविदजब '’

2
लेकिन वह खुद एन्ट्रापी उत्पन्न नहीं करता है।
ओथियस

7

पहले दी गई दोनों टिप्पणियाँ पूरी तरह से ठीक हैं। लेकिन यहाँ सिर्फ मेरे 2 सेंट है।

आरएचईएल / सेंटोस 6 और एन्ट्रॉपी के साथ समस्या यह है कि वे गुदगुदी गुठली हैं। तो, अपने आप से, इन गुठली पर्याप्त एन्ट्रापी उत्पन्न नहीं करते हैं। आपको कुछ कीबोर्ड संलग्न करने होंगे या यहां तक ​​कि कुछ माउस आंदोलन या उल्लेख के अनुसार dd का उपयोग करना होगा।

rngd डेमॉन कमाल है और अधिकांश वाणिज्यिक संस्थाएं इसका उपयोग करती हैं।

हालांकि, मैंने जो सबसे अच्छा दृष्टिकोण देखा है वह समर्पित टीपीएम डिवाइस का उपयोग है। वे छोटे हार्डवेयर हैं जो काफी महंगे हैं। आप उन्हें डालते हैं और rngd हार्डवेयर स्रोत से यादृच्छिक सच्चे एन्ट्रॉपी का उपयोग करते हैं। जहाँ तक मुझे पता है, Fujitsu के पास कुछ अच्छा TPM डिवाइस है।

हाँ, ये तीन विधियाँ बहुत अधिक एन्ट्रापी भाग को कवर करती हैं।


बहुत ही रोचक। धन्यवाद। जैसा कि मैंने क्रिस का उल्लेख किया है, मुझे जल्द ही एक एचएसएम तक पहुंच प्राप्त होगी जो एक आरएनजी के साथ आती है।
तूफानी

4

अन्य प्रतिक्रियाओं पर ट्विस्ट लेकिन कम से कम एक लाइनर और रूट नहीं।

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

कुंजी-जीन-विकल्प शामिल हैं

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

आउटपुट- key.txt में मेरी सुपर सीक्रेट कुंजी है।


4

https://gist.github.com/franciscocpg/1575d286548034113884c3185ca88681

एक ssh सत्र खोलें एक sudo apt-get install rng-tools और SSH विंडो खोलें gpg --gen--key अपने पहले SSH सत्र पर वापस जाएं और sudo rngd -r /dev/urandom इसे चलाएं जब तक कि gpg आपकी कुंजी उत्पन्न न कर दे!

तब आप rngd को मार सकते हैं sudo kill -9 $(pidof rngd)



1

मैंने यह कैसे किया:

  1. pacman -S community/rng-tools
  2. vim /etc/conf.d/rngd जोड़ने के लिए RNGD_OPTS="-r /dev/urandom"
  3. systemctl enable --now rngd
  4. gpg-agent --daemon
  5. gpg --full-gen-key

$GNUPGHOMEकस्टम निर्देशिका को इंगित करने के लिए सेट किए जाने पर भी काम किया जाता है।


1

मैंने सभी समाधानों की कोशिश की है, और पाया है कि havegedसबसे अच्छा काम करता है यहां तक ​​कि जब अन्य काम नहीं करते हैं (विशेष रूप से एक हेडलेस सर्वर पर, जिसके पास बहुत अधिक उपयोगकर्ता इनपुट या गतिविधि नहीं है)।

yum install haveged

apt install haveged

यह havegedडेमॉन सेवा शुरू करता है /dev/randomजो एंट्रोपी से भरा रहेगा । --key-genएक मिनट से कम समय में पूरा होना चाहिए।

आप चलाकर सत्यापित कर सकते हैं cat /dev/random। आम तौर पर, यह जल्दी से एन्ट्रॉपी और ठहराव से बाहर निकल जाएगा। इसलिए --key-genलटक गया। लेकिन स्थापित करने के बाद haveged, cat /dev/randomलगातार उत्पादन प्रदान करना चाहिए।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.