gpg --gen-key bị treo khi đạt đủ entropy trên centos 6


49

Đang cố gắng tạo khóa cho máy chủ.

gpg --gen-key

Chúng ta cần tạo ra rất nhiều byte ngẫu nhiên. Đó là một ý tưởng tốt để thực hiện một số hành động khác (gõ trên bàn phím, di chuyển chuột, sử dụng các đĩa) trong quá trình tạo nguyên tố; điều này mang lại cho trình tạo số ngẫu nhiên một cơ hội tốt hơn để có đủ entropy.

và nó chỉ treo ở đó.

Có một lỗi khác:

không thể kết nối với `/root/.gnupg/S.gpg-agent ': Không có tệp hoặc thư mục như vậy

mà dường như biến mất sau:

gpg-tác nhân --daemon
GPG_AGENT_INFO = / tmp / gpg-4c5hyT / S.gpg-tác nhân: 1397: 1; xuất GPG_AGENT_INFO;

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

nhưng một lần nữa, nó bị treo ở "... đạt đủ entropy".

Không có "++++++++++++++++++++++++++++++++++++++++++" từ các bài đăng trên diễn đàn có vẻ như sẽ được mong đợi vì khóa được tạo.

Tôi đã thử cài đặt lại gói, nhưng dường như mọi thứ phụ thuộc vào gpg.

Tôi cũng đã đọc những người khác gặp vấn đề với điều này trên centos 6 (trong khi centos 5 hoạt động tốt).

Không có gì đáng chú ý trong /var/log/*.

Bất kỳ ý tưởng về nơi để đi từ đây?

Cảm ơn.


rng-tools chỉ là một giải pháp nếu bạn có HSM, các câu trả lời khuyến nghị điều này sẽ thất bại trên các hệ thống mà không có điều này. Bạn sẽ thấy một thông báo như: Khởi động trình thu thập entropy phần cứng RNG: (Không tìm thấy inode thiết bị RNG phần cứng)
JohnErinthen

Câu trả lời:


49

Khi gpg --gen-keylệnh bị treo như thế này, hãy đăng nhập vào shell khác và thực hiện lệnh sau:

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

(Lệnh này về cơ bản đọc từ ổ cứng của bạn và loại bỏ đầu ra, vì viết vào /dev/zerosẽ không làm gì cả.)

Sau vài giây / phút, lệnh tạo khóa sẽ hoàn tất.


2
Tuyệt vời. Cảm ơn bạn. Tôi không thể tin rằng tôi đã bỏ lỡ phần đó của hướng dẫn: /
cơn bão

2
Nó sẽ là một ý tưởng tốt hơn nhiều để lấy entropy khác nhau mỗi lần. Nếu hệ thống của bạn liên tục hết entropy thì có gì đó cực kỳ sai với cấu hình của bạn hoặc bạn đang sử dụng entropy rất nhanh (đến mức bạn nên có RNG phần cứng). Nếu bạn cần thêm entropy một cách thường xuyên, có những nơi hợp lệ để tải xuống nhiều hơn, như Quantum RNG của Humboldt-Universität .
Chris S

18
Tôi thực sự đã thử nó, nhưng vì tôi không có root nên tôi không thể truy cập trực tiếp / dev / sda. Điều làm việc cho tôi thay vào đó làfind / | xargs file
carl.anderson 15/03/2016

2
Tôi đã thoải mái hơn khi chạy find / | xargs filethay vì dd if=/dev/sda of=/dev/zerovà sau một phút nó đã được thực hiện. Cảm ơn!
Lea

1
Ý bạn là of=/dev/nullsao
maxschlepzig

22

Đối với một giải pháp đáng tin cậy hơn, bạn có thể cài đặt các tiện ích liên quan đến trình tạo số ngẫu nhiên, điều này sẽ đảm bảo rằng bạn luôn có đủ byte ngẫu nhiên.

yum install rng-tools

và sau đó chỉnh sửa /etc/sysconfig/rngdvà thêmEXTRAOPTIONS="-r /dev/random"

Bắt đầu dịch vụ

 service rngd start

Voila và bạn sống hạnh phúc mãi mãi về sau :)


5
Nếu bạn không muốn bắt đầu dịch vụ, bạn chỉ cần chạy rngd -r /dev/randomroot khi đã rng-toolscài đặt xong. Thế hệ chìa khóa của bạn sẽ cất cánh ngay lập tức.
davidjb

2
Nhưng bản thân nó không tạo ra entropy.
Otheus

7

Cả hai ý kiến ​​đưa ra trước là hoàn toàn tốt. Nhưng đây chỉ là 2 xu của tôi.

Vấn đề với RHEL / centos 6 và entropy là chúng là các hạt nhân không có dấu vết. Vì vậy, bản thân chúng, những hạt nhân này không tạo ra đủ entropy. Bạn phải gắn một số bàn phím hoặc thậm chí một số chuyển động chuột hoặc sử dụng dd như đã đề cập.

dang rngd là tuyệt vời và hầu hết các thực thể thương mại sử dụng nó.

Tuy nhiên, cách tiếp cận tốt nhất tôi thấy là sử dụng thiết bị TPM chuyên dụng. Chúng là những phần cứng nhỏ khá đắt tiền. Bạn đặt chúng và rngd sử dụng entropy ngẫu nhiên thực từ nguồn phần cứng. Theo tôi biết, Fujitsu có một số thiết bị TPM tốt.

Vâng, ba phương pháp này bao gồm khá nhiều phần entropy.


Rất thú vị. Cảm ơn bạn. Như tôi đã đề cập với Chris, tôi sẽ sớm có quyền truy cập vào một HSM đi kèm với RNG.
bão

4

Xoay trên các phản ứng khác nhưng ít nhất một lớp lót và không root.

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

Các tùy chọn khóa-gen chứa

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

Đầu ra-key.txt chứa khóa siêu bí mật của tôi.



3

EXTRAOPTIONS = "- r / dev / urandom" đã làm việc cho tôi thay vì EXTRAOPTIONS = "- r / dev / ngẫu nhiên"


1

Làm thế nào tôi làm điều đó:

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

Làm việc ngay cả khi $GNUPGHOMEđược đặt để trỏ đến một thư mục tùy chỉnh.


1

Tôi đã thử tất cả các giải pháp và thấy rằng nó havegedhoạt động tốt nhất ngay cả khi các giải pháp khác không hoạt động (đặc biệt là trên máy chủ không đầu không có nhiều hoạt động hoặc đầu vào của người dùng).

yum install haveged

apt install haveged

Nó bắt đầu havegeddịch vụ daemon sẽ giữ /dev/randomđầy entropy. --key-gennên hoàn thành trong vòng chưa đầy một phút.

Bạn có thể xác minh bằng cách chạy cat /dev/random. Thông thường, nó sẽ nhanh chóng hết entropy và tạm dừng. Đó là lý do tại sao --key-genbị treo. Nhưng sau khi cài đặt haveged, cat /dev/randomnên cung cấp đầu ra liên tục.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.