मेरे पास पर्याप्त एन्ट्रॉपी प्राप्त करने और प्राप्त करने के लिए पृष्ठभूमि में चलने वाली प्रक्रियाओं का एक टन है, लेकिन मैं अभी भी असफल रहा हूं।

**We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.
Not enough random bytes available.  Please do some other work to give
the OS a chance to collect more entropy! (Need 210 more bytes)**

मुझे काम करने वाली कुंजी उत्पन्न करने के लिए एक विधि की आवश्यकता है, क्योंकि मैं जो करने की कोशिश कर रहा हूं वह स्पष्ट रूप से विफल हो रहा है।

answer

क्या आपने आरएनजी पर एक नज़र डाली है?

फेडोरा/आरएच/सेंटोस प्रकार: sudo yum install rng-tools

डिबेट प्रकारों पर: sudo apt-get install rng-toolsइसे स्थापित करने के लिए।

फिर sudo rngd -r /dev/urandomचाबियां बनाने से पहले दौड़ें

संदर्भ: http://it.toolbox.com/blogs/lim/how-to-generate-enough-entropy-for-gpg-key-generation-process-on-fedora-linux-38022

मैं द्वारा कुंजी उत्पन्न करने में सक्षम था

apt-get install rng-tools

एक अन्य SSH विंडो में खुला

 gpg --gen-key

अपने पहले SSH सत्र पर वापस जाएँ और दौड़ें

sudo rngd -r /dev/urandom

इसे तब तक चलने दें जब तक gpg आपकी कुंजियाँ उत्पन्न न कर दे!

वर्तमान में उपलब्ध एन्ट्रापी के बाइट्स की मात्रा की जाँच करने के लिए, उपयोग करें

cat /proc/sys/kernel/random/entropy_avail

एन्ट्रापी बकेट 4096 बाइट बड़ी है, जो बहुत जल्दी समाप्त हो सकती है।

इस छोटे से 'रीडस्पीड' टूल ( http://1wt.eu/tools/readspeed/ ) का उपयोग करके , आप माप सकते हैं कि विभिन्न तरीकों से एंट्रॉपी बकेट कितनी तेजी से भरता है।

उदाहरण के लिए, लॉन्च करें:

$ ./readspeed < /dev/random

और अपने माउस को इधर-उधर घुमाएँ। आप देखेंगे कि 'रीडस्पीड' एंट्रॉपी बकेट को भरते ही खाली कर देता है, और जब आप माउस को घुमाते हैं, तो यह थोड़ा भर जाता है।

विभिन्न तरीकों की कोशिश करते हुए, ऐसा लगता है कि उस बाल्टी को भरने के लिए कीबोर्ड इनपुट और माउस मूवमेंट सबसे कुशल हैं। नेटवर्क ट्रांसफर और हार्ड ड्राइव कॉपी का ज्यादा प्रभाव नहीं होता है।

अंत में, एंट्रोपी पीढ़ी के उपकरण उपलब्ध हैं, जैसे कि यह एक: http://www.entropykey.co.uk/

आरएनजी-टूल्स के लिए +1

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

$ nice -n 19 bash
$ until [ $COUNT -lt 1 ]; do
  let COUNT=`cat /proc/sys/kernel/random/entropy_avail`
  echo "`date` COUNTER $COUNT"
done

पहली पंक्ति कम प्राथमिकता के साथ एक नया बैश खोल शुरू करना है (मुझे कई उपयोगकर्ताओं द्वारा साझा किए गए सर्वर पर अच्छा होना चाहिए)। जब तक लूप अनंत नहीं है, तो कुंजी उत्पन्न होने के बाद इसे तोड़ना याद रखें। यह सब कुछ कर रहा है जिससे नेटवर्क यातायात एंट्रॉपी बढ़ा रहा है। यह यह दिखाने के लिए एंट्रॉपी_एवेल काउंटर पर भी नज़र रखता है कि यह कैसे भर जाता है और दूसरी तरफ gpg द्वारा खाली हो जाता है। मेरे मामले में, काउंटर जल्दी से 64 तक भर गया और 0 पर वापस खाली हो गया (लगता है कि जीपीजी 64 के हिस्से में उठाता है)। मैं सर्वर पर 3 घंटे से अधिक के लिए 4096 बिट कुंजी पीढ़ी की प्रतीक्षा कर रहा था। इस स्क्रिप्ट को चलाना शुरू करने के बाद, यह 5 मिनट के भीतर समाप्त हो गया।

मैं 4096 कुंजी उत्पन्न करने के लिए अपने हेडलेस उबंटू 14.04 सर्वर पर एन्ट्रापी उत्पन्न करने के लिए बाध्य और दृढ़ था gpg --gen-key

एंट्रोपी उत्पन्न करने के लिए एक पैकेज है जिसे हेज्ड कहा जाता है। स्थापित करने का उदाहरण:

sudo apt-get install haveged

मुझे यह करना पड़ा sudo apt-get install rng-toolsक्योंकि यह निम्नलिखित परीक्षण में निर्भरता है।

एक परीक्षण का उदाहरण यह देखने के लिए कि क्या एन्ट्रापी हेज्ड द्वारा उत्पन्न होती है:

cat /dev/random | rngtest -c 1000

A very small amount of failures is acceptable in any random number generator, but you can expect to see 998-1000 successes very often when using hovered.

मुझे इसके बारे में यहां एक ट्यूटोरियल में पता चला:

https://www.digitalocean.com/community/tutorials/how-to-setup-additional-entropy-for-cloud-servers-using-haveged

दौड़ने के बाद अब मेरे पास चाबियां हैं gpg --gen-key

havegedसबसे अच्छा तरीका है, लेकिन अगर आप कुछ भी स्थापित नहीं कर सकते हैं, तो आप मैन्युअल रूप से एन्ट्रॉपी उत्पन्न कर सकते हैं। इस विधि gpg --gen-kenको मेरी मशीन पर 1-2 मिनट में पूरा करने की अनुमति है (10s की तुलना में haveged)। तो यह लगभग 10x धीमा है।

gpg --gen-keyचलते समय इसे दूसरे टर्मिनल में चलाएँ :

while true; do
    # print entropy available
    cat /proc/sys/kernel/random/entropy_avail
    # write a 1 MB stream of zeros to /tmp/foo
    # "conv=fdatasync" flushes the disk cache
    dd bs=1M count=1 if=/dev/zero of=/tmp/foo conv=fdatasync
done

एक लाइन:

while true; do cat /proc/sys/kernel/random/entropy_avail; dd bs=1M count=1 if=/dev/zero of=/tmp/foo conv=fdatasync; done

ठीक है, ऐसा लगता है की तुलना में आसान लगता है:

ls -R /

उपरोक्त आदेश द्वारा प्रदान किए गए यादृच्छिक बाइट, आरएसए/4096 कुंजी जोड़ी उत्पन्न करने के लिए आवश्यक एन्ट्रॉपी प्रदान करने के लिए पर्याप्त हैं।

से लिया गया: https://www.thingy-ma-jig.co.uk/blog/22-01-2010/generate-entropy-gnupg

pacman-key --initआर्क में दौड़ते समय मैं इस मुद्दे में भाग गया यहां अन्य समाधान मेरे लिए अच्छा काम नहीं करते थे, लेकिन मैंने पाया कि बस मेरे राउटर को फ्लड-पिंग करना अच्छी तरह से काम करता है:ping -f ip.of.my.router