가상 머신에서 테스트 및 데모 목적으로 최소 2개의 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 '[email protected]'
$ gpg --batch -quick-random --passphrase 'alice' --quick-gen-key '[email protected]'
gpg
(GnuPG) 사용 2.1.2.
답변1
/dev/random
일시적으로 다음 명령을 사용할 수 있습니다 ./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
답변2
기사를 쓰는 동안에도 똑같은 요구 사항이 있습니다.스마트 카드 설정 프로그램. 테스트 중에는 엔트로피에 신경 쓰지 않고 테스트할 때마다 여러 개의 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)