Tôi có rất nhiều quy trình đang chạy trong nền để thử và lấy đủ entropy, nhưng tôi vẫn thất bại.

**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)**

Tôi cần một phương pháp để tạo khóa hoạt động, vì những gì tôi đang cố gắng làm dường như không thành công.

answer

Bạn đã xem qua RNG chưa?

Các loại Fedora / Rh / Centos: sudo yum install rng-tools

Trên các loại deb: sudo apt-get install rng-toolsđể thiết lập nó.

Sau đó chạy sudo rngd -r /dev/urandomtrước khi tạo các phím.

Tham khảo: http://it.toolbox.com/blogs/lim/how-to-generate-enough-entropy-for-gpg-key-generation-process-on-fedora-linux-38022

Tôi đã có thể tạo khóa bằng cách

apt-get install rng-tools

Trong một cửa sổ SSH khác đang mở

 gpg --gen-key

Quay lại phiên SSH đầu tiên của bạn và chạy

sudo rngd -r /dev/urandom

Hãy để điều này chạy cho đến khi gpg tạo ra các khóa của bạn!

Để kiểm tra số lượng byte entropy hiện có, hãy sử dụng

cat /proc/sys/kernel/random/entropy_avail

Nhóm entropy lớn 4096 byte, có thể nhanh chóng bị cạn kiệt.

Bằng cách sử dụng công cụ 'tốc độ đọc' nhỏ này ( http://1wt.eu/tools/readspeed/ ), bạn có thể đo tốc độ làm đầy của thùng entropy bằng các phương pháp khác nhau.

Ví dụ: khởi chạy:

$ ./readspeed < /dev/random

và di chuyển chuột của bạn xung quanh. Bạn sẽ thấy rằng 'readpeed' làm trống thùng entropy ngay sau khi nó được lấp đầy và khi bạn di chuyển chuột, nó sẽ đầy lên một chút.

Thử các phương pháp khác nhau, có vẻ như nhập liệu bằng bàn phím và di chuyển chuột là những cách hiệu quả nhất để bổ sung nhóm đó. Việc chuyển mạng và sao chép ổ cứng không có nhiều ảnh hưởng.

Cuối cùng, có sẵn các thiết bị tạo entropy, chẳng hạn như thiết bị này: http://www.entropykey.co.uk/ .

+1 cho rng-tools

Trong trường hợp bạn đang gặp phải tình huống như tôi - không có quyền cài đặt phần mềm mới (rng-tools) trên một máy chủ không có đầu mà hầu như không có phần cứng đầu vào (card âm thanh, bàn phím, chuột) đi kèm. Bạn có thể chạy mã đơn giản này từ một thiết bị đầu cuối khác kết nối với cùng một máy chủ, để thêm vào entropy. Nó không quan trọng nếu bạn bắt đầu chạy cái này trước hoặc sau khi bắt đầugpg --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

Dòng đầu tiên là bắt đầu một bash shell mới, với mức độ ưu tiên thấp hơn (tôi cần phải làm tốt trên một máy chủ được chia sẻ bởi nhiều người dùng). Vòng lặp Until là vô hạn, vì vậy hãy nhớ ngắt nó khi khóa được tạo. Tất cả những gì nó đang làm là khiến lưu lượng mạng tăng entropy. Nó cũng giám sát bộ đếm entropy_avail để hiển thị cách nó được lấp đầy và làm trống ở phía bên kia bởi gpg. Trong trường hợp của tôi, bộ đếm nhanh chóng đầy lên 64 và trống trở về 0 (đoán gpg nhận theo phần 64). Tôi đã đợi tạo khóa 4096 bit trong hơn 3 giờ trên máy chủ. Sau khi bắt đầu chạy tập lệnh này, nó sẽ hoàn thành trong vòng chưa đầy 5 phút.

Tôi đã bị ràng buộc và quyết tâm tạo entropy trên máy chủ Ubuntu 14.04 không đầu của mình để tạo khóa 4096 với gpg --gen-key

Có một gói để tạo entropy được gọi là hasged. Ví dụ về cài đặt:

sudo apt-get install haveged

Tôi đã phải làm sudo apt-get install rng-toolsvì nó là một phụ thuộc trong thử nghiệm sau đây.

Ví dụ về một bài kiểm tra để xem liệu entropy có được tạo bởi hasged hay không:

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.

Tôi đã tìm hiểu về nó trong một hướng dẫn ở đây:

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

Bây giờ tôi có chìa khóa sau khi chạy gpg --gen-key

havegedlà cách tốt nhất, nhưng nếu bạn không thể cài đặt bất cứ thứ gì, thì bạn có thể tạo entropy theo cách thủ công. Phương pháp này cho phép gpg --gen-kenhoàn thành trong 1-2 phút trên máy của tôi (so với 10 giây với haveged). Vì vậy, nó chậm hơn khoảng 10 lần.

Chạy điều này trong một thiết bị đầu cuối khác trong khi gpg --gen-keyđang chạy:

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

Lót:

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

Chà, có vẻ dễ dàng hơn tưởng tượng:

ls -R /

Các byte ngẫu nhiên được cung cấp bởi lệnh trên đủ để cung cấp entropy cần thiết để tạo cặp khóa RSA / 4096.

Lấy từ: https://www.thingy-ma-jig.co.uk/blog/22-01-2010/generate-entropy-gnupg

Tôi đã gặp phải vấn đề này khi chạy pacman-key --inittrong vòm. Các giải pháp khác ở đây không hoạt động tốt đối với tôi, nhưng tôi thấy rằng chỉ đơn giản là Ping-ping bộ định tuyến của tôi đã hoạt động tốt:ping -f ip.of.my.router