Как быстро генерировать (небезопасные) ключи 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) 
  • Подключение SSH и Git к gpg-agent
  • Не удалось добавить ключ к gpg
  • Как шифровать, если у открытого ключа нет электронной почты
  • надежное скачивание debian
  • Как показать прогресс с GPG для больших файлов?
  • Почему gpg пропускает секретные ключи, у которых нет открытого ключа?
  • Шифровать файлы с помощью gpg (и их симметричного шифрования ключа) - это нормально делать в мире * nix?
  • Экспорт открытых ключей с использованием gpg
  • Что означает код ошибки gpg 2 (GPG_ERR_UNKNOWN_PACKET)?
  • Как зашифровать файл с помощью закрытого ключа
  • Открытый ключ не найден для RPM
  • Interesting Posts

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

    Разница между Xorg и Gnome / KDE / Xfce

    Как подключиться к bash как другому пользователю

    Как настроить Nemo правой кнопкой мыши «Открыть в терминале», чтобы запустить «gnome-terminal»,

    Конфигурация tightvnc – проверка версии программного обеспечения

    Сетевой менеджер не принимает dns-поиск в отношении VPN, GNOME Ubuntu 16.04.1 LTS

    vim – «Нажмите ENTER или введите команду для продолжения» сразу после загрузки?

    Стиль Skype gtk не работает на debian squeeze 64

    dd для резервного копирования и восстановления полной системы

    В терминале Linux существует разница между «bash foo.sh» и «./foo.sh»,

    Может ли «НОВОСТИ» в пакете Debian делать упаковщик / сопровождающий?

    Должна ли служба отменить и прекратить неполную работу над SIGTERM?

    Замена всего `&`, но не единственного в XML-сущности `& amp;` с `#` с sed в заданном теге XML

    Создайте собственный брандмауэр на Java или другом языке высокого уровня?

    NTP не синхронизируется в VM

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