Как быстро генерировать (небезопасные) ключи GPG?

Я хотел бы автоматизировать создание как минимум двух ключей GPG для тестирования и демонстрации на виртуальной машине. Из-за этого контекста я хочу убедиться, что генерация ключей выполняется быстро, в идеале не используется и не изменяется /dev/*random вообще. Например, использование системных часов в качестве единственного случайного источника будет прекрасным:

 $ gpg --quick-gen-key 'alice' [options] --random-data $(date +%s) $ sleep 2 $ gpg --quick-gen-key 'bob' [options] --random-data $(date +%s) 

Мне не удалось найти таких вариантов. Есть -quick-random и --debug-quick-random которые не находятся на странице man , похоже, поддерживаются gpg и просто не работают. Эти команды, например, выполнялись несколько минут, прежде чем я их убил:

 $ gpg --batch --debug-quick-random --passphrase 'alice' --quick-gen-key 'alice@example.org' $ gpg --batch -quick-random --passphrase 'alice' --quick-gen-key 'alice@example.org' 

Использование gpg (GnuPG) 2.1.2.

2 Solutions collect form web for “Как быстро генерировать (небезопасные) ключи GPG?”

Вы можете временно использовать /dev/random pull из /dev/urandom с помощью rng-tools :

 # rngd -v -f -r /dev/urandom 

Больше информации здесь: https://madebits.github.io/#blog/2014/2014-05-30-Making-dev-random-Temporary-Faster.md

У меня было то же самое требование при написании моей программы настройки смарт-карты . Во время тестирования мне было бы безразлично энтропия, и мне нужно было бы генерировать несколько ключей GPG в каждой строке каждого теста.

Как я описал в своем ответе здесь, следующий скрипт помог мне ускорить процесс:

 #!/usr/bin/env python # For testing purposes only # DO NOT USE THIS, THIS DOES NOT PROVIDE ENTROPY TO /dev/random, JUST BYTES import fcntl import time import struct RNDADDENTROPY=0x40085203 while True: random = "3420348024823049823-984230942049832423l4j2l42j" t = struct.pack("ii32s", 8, 32, random) with open("/dev/random", mode='wb') as fp: # as fp has a method fileno(), you can pass it to ioctl res = fcntl.ioctl(fp, RNDADDENTROPY, t) time.sleep(0.001) 
  • Создание QR-кода очень большого файла?
  • Зачем нужно добавлять GPG-ключ с ключом apt перед добавлением URL-адреса в sources.list и загрузку-установку приложения с помощью apt-get?
  • добавить ключ для репозитория
  • Есть ли способ GLOBALLY установить сервер ключей DEFAULT для gpg на Debian?
  • Как продлить срок действия гейпа с истекшим сроком годности
  • gpg: «секретный ключ недоступен», когда ключ sec & pub находится в keyring
  • Создайте глобальную переменную окружения после загрузки
  • Подключение SSH и Git к gpg-agent
  • Как войти с парольной фразой?
  • Проблема с ключом Gnome
  • GPG не расшифровывает симметрично зашифрованный файл
  • Диалоги пароля блокируют привязки клавиш
  • Interesting Posts

    Измерьте пропускную способность трубы в корпусе

    Как игнорировать пустые каталоги при использовании `rm` с подстановочными знаками для нескольких каталогов в zsh?

    Буфер обмена для изображений

    Помогите обновить OpenSSH до версии 6.6

    Расшифровка LUKS при загрузке: с помощью монтирования nfs для хранения ключа

    WebDriverError: неизвестная ошибка: Chrome не удалось запустить: crashed

    Как GRUB может прочитать его конфигурационный файл в файловой системе ext3?

    Почему awk печатает всю строку, когда я хочу, чтобы она печатала переменную?

    В AsciiDoc, как связать man-страницу Unix?

    Как я могу использовать сенсорный экран ELO?

    Как удалить неактивное блочное устройство из / dev?

    Почему btrfs отказывается конвертировать метаданные в RAID1

    Установка NixOS в многозагрузочной системе с GRUB (от установки Arch)

    Как переименовать все файлы и добавить размер изображения в имя файла

    Найдите, какие файлы не дублируются во втором месте, независимо от различий в структуре каталогов?

    Linux и Unix - лучшая ОС в мире.