gpg - ключ-ключ висить при набутті достатньої ентропії на центос 6


49

Спроба створити ключ для сервера.

gpg --gen-key

Нам потрібно генерувати безліч випадкових байтів. Це гарна ідея виконати якусь іншу дію (наберіть на клавіатурі, перемістіть мишу, використовуйте диски) під час основного покоління; це дає генератору випадкових чисел більше шансів отримати достатню ентропію.

і він просто там висить.

Є ще одна помилка:

не вдається підключитися до `/root/.gnupg/S.gpg-agent ': такого файлу чи каталогу немає

який, здається, піде після:

gpg-agent --daemon
GPG_AGENT_INFO = / tmp / gpg-4c5hyT / S.gpg-агент: 1397: 1; експорт GPG_AGENT_INFO;

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

але знову це зависає на "... отримати достатню ентропію".

Не існує "+++++++++++++++++++++++++++++++++++++++++", які від публікацій на форумі, схоже, слід очікувати, коли ключ створюється.

Я спробував перевстановити пакет, але, здається, все залежить від gpg.

Я також читав інших людей, які мають проблеми з цим на centos 6 (тоді як centos 5 працює добре).

У цьому немає нічого чудового /var/log/*.

Будь-які ідеї, куди поїхати звідси?

Дякую.


rng-tools - це лише рішення, якщо у вас є HSM, відповіді на які рекомендують це не вдасться в системах без цього. Ви побачите повідомлення на кшталт: Запуск апаратної логіки ентропії збірника демона: (апаратний RNG пристрій inode не знайдено)
JohnErinthen

Відповіді:


49

Коли gpg --gen-keyкоманда висить так, увійдіть до іншої оболонки та виконайте таку команду:

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

(Ця команда в основному зчитується з вашого жорсткого диска і відкидає висновок, тому що писати в не /dev/zeroбуде нічого.)

Через кілька секунд / хвилин команда генерації ключів повинна завершитися.


2
Дивовижно. Дякую. Не можу повірити, що я пропустив цю частину посібника: /
stormdrain

2
Було б набагато кращою ідеєю щоразу захоплювати різні ентропії. Якщо у вас у системі постійно не вистачає ентропії, то у вашій конфігурації щось страшно неправильно, або ви використовуєте ентропію дуже швидко (до того моменту, коли у вас повинен бути апаратний RNG). Якщо вам потрібно більше ентропії на регулярній основі, є дійсні місця для простого завантаження більше, як -от Квантова RNG Гумбольдта-Університета .
Кріс Ш

18
Я фактично спробував це, але оскільки у мене не було root, я не міг отримати доступ / dev / sda безпосередньо. Що замість мене працювалоfind / | xargs file
carl.anderson

2
Мені було зручніше бігати find / | xargs fileзамість dd if=/dev/sda of=/dev/zeroі через хвилину це було зроблено. Дякую!
Леа

1
Ви маєте на увазі of=/dev/null?
maxschlepzig

22

Для більш надійного рішення ви можете встановити утиліти, пов'язані з генератором випадкових чисел, які гарантують, що у вас завжди достатньо випадкових байтів.

yum install rng-tools

а потім відредагуйте /etc/sysconfig/rngdта додайтеEXTRAOPTIONS="-r /dev/random"

Запустіть послугу

 service rngd start

Вуала і ти живеш щасливо назавжди :)


5
Якщо ви не хочете запускати послугу, ви можете просто запустити rngd -r /dev/randomяк root після rng-toolsвстановлення. Ваше покоління ключів негайно вилетить.
davidjb

2
Але це само по собі не створює ентропії.
Отей

7

Обидва коментарі, що були раніше, ідеально чудові. Але ось лише мої 2 копійки.

Проблема з RHEL / centos 6 та ентропією полягає в тому, що вони нечіткі ядра. Отже, ці ядра самі по собі не генерують достатньої кількості ентропії. Ви повинні приєднати якусь клавіатуру або навіть деякий рух миші або використовувати dd, як згадувалося.

rngd демон є приголомшливим, і більшість комерційних організацій використовують його.

Однак найкращий підхід, який я бачив, - це використання виділених пристроїв TPM. Це невелике обладнання, яке коштує досить дорого. Ви поміщаєте їх і rngd використовує випадкову справжню ентропію з апаратного джерела. Наскільки мені відомо, у Fujitsu є хороший пристрій TPM.

Так, ці три методи в значній мірі охоплюють частину ентропії.


Дуже цікаво. Дякую. Як я вже згадував про Кріса, я незабаром отримаю доступ до HSM, який поставляється з RNG.
штормовий

4

Покрутіть інші відповіді, але принаймні один вкладиш, а не корінь.

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

Key-gen-options містить

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

Output-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 та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.