gpg --gen-key se cuelga al ganar suficiente entropía en centos 6

49

Intentando generar una clave para un servidor.

gpg --gen-key

Necesitamos generar muchos bytes aleatorios. Es una buena idea realizar alguna otra acción (escribir en el teclado, mover el mouse, utilizar los discos) durante la generación principal; Esto le da al generador de números aleatorios una mejor oportunidad de ganar suficiente entropía.

y simplemente cuelga ahí.

Hay otro error:

no se puede conectar a `/root/.gnupg/S.gpg-agent ': No existe tal archivo o directorio

que parece desaparecer después de:

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

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

pero de nuevo, se cuelga en "... ganar suficiente entropía".

No hay "++++++++++++++++++++++++++++++++++++++++++" que parece que debería esperarse de las publicaciones del foro a medida que se genera la clave.

He intentado reinstalar el paquete, pero aparentemente todo depende de gpg.

También leí a otras personas que tienen problemas con esto en centos 6 (mientras que centos 5 funciona bien).

No hay nada notable en /var/log/*.

¿Alguna idea sobre a dónde ir desde aquí?

Gracias.

colector de aguas pluviales
fuente
rng-tools es solo una solución si tiene un HSM, respuestas que recomiendan que esto fallará en sistemas sin esto. Verá un mensaje como: Inicio del demonio del recolector de entropía RNG de hardware: (No se encontró el inodo del dispositivo RNG de hardware)
JohnErinthen

Respuestas:

49

Cuando el gpg --gen-keycomando se cuelgue así, inicie sesión en otro shell y ejecute el siguiente comando:

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

(Este comando básicamente lee de su disco duro y descarta la salida, porque escribir en /dev/zerono hará nada).

Después de unos segundos / minutos, el comando de generación de claves debería completarse.

John
fuente
2
Increíble. Gracias. No puedo creer que me perdí esa parte del manual: /
stormdrain
2
Sería una idea mucho mejor tomar una entropía diferente cada vez. Si su sistema se está quedando constantemente sin entropía, entonces algo está terriblemente mal con su configuración o está utilizando la entropía muy rápidamente (hasta el punto en que debería tener un RNG de hardware). Si necesita más entropía regularmente, hay lugares válidos para descargar simplemente más, como Quantum RNG de Humboldt-Universität .
Chris S
19
Realmente intenté esto, pero como no tenía root no podía acceder a / dev / sda directamente. En cambio, lo que funcionó para mí fuefind / | xargs file
carl.anderson
2
Estaba más cómodo corriendo en find / | xargs filelugar de dd if=/dev/sda of=/dev/zeroy después de un minuto ya estaba hecho. ¡Gracias!
Lea el
1
Qué quiere decir of=/dev/null?
maxschlepzig
22

Para una solución más confiable, puede instalar utilidades relacionadas con el generador de números aleatorios, lo que asegurará que siempre tenga suficientes bytes aleatorios.

yum install rng-tools

y luego editar /etc/sysconfig/rngdy agregarEXTRAOPTIONS="-r /dev/random"

Inicia el servicio

 service rngd start

Voila y vives felices para siempre :)

golja
fuente
55
Si no desea iniciar el servicio, simplemente puede ejecutarlo rngd -r /dev/randomcomo root una vez que rng-toolsesté instalado. Su generación de claves despegará de inmediato.
davidjb
2
Pero eso en sí mismo no genera entropía.
Oteo
7

Ambos comentarios dados anteriormente están perfectamente bien. Pero aquí están solo mis 2 centavos.

El problema con RHEL / centos 6 y la entropía es que son núcleos sin garrapatas. Entonces, por sí mismos, estos núcleos no generan suficiente entropía. Tienes que conectar un teclado o mover el mouse o usar dd como se mencionó.

rngd daemon es impresionante y la mayoría de las entidades comerciales lo usan.

Sin embargo, el mejor enfoque que he visto es el uso de un dispositivo TPM dedicado. Son pequeños hardware que son bastante caros. Los pones y rngd utiliza entropía verdadera aleatoria de la fuente de hardware. Hasta donde yo sé, Fujitsu tiene un buen dispositivo TPM.

Sí, estos tres métodos cubren la parte de entropía.

Soham Chakraborty
fuente
Muy interesante. Gracias. Como le mencioné a Chris, pronto tendré acceso a un HSM que viene con un RNG.
stormdrain
4

Gire sobre otras respuestas pero al menos un revestimiento y no la raíz.

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

Key-gen-options contiene

Key-Type: 1
Key-Length: 2048
Subkey-Type: 1
Subkey-Length: 2048
Name-Real: myuser
Name-Email: [email protected]
Expire-Date: 0

Output-key.txt contiene mi clave súper secreta.

Dave Brunkow
fuente
3

EXTRAOPTIONS = "- r / dev / urandom" funcionó para mí en lugar de EXTRAOPTIONS = "- r / dev / random"

Marjo Mercado
fuente
1

Como lo hice

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

Funcionó incluso cuando $GNUPGHOMEestá configurado para apuntar a un directorio personalizado.


fuente
1

He probado todas las soluciones y descubrí que havegedfunciona mejor incluso cuando otras no funcionan (especialmente en un servidor sin cabeza que no tiene mucha información o actividad del usuario).

yum install haveged

apt install haveged

Inicia el havegedservicio demonio que se mantendrá /dev/randomlleno de entropía. --key-gendebería completarse en menos de un minuto.

Puede verificar ejecutando cat /dev/random. Normalmente, se quedará rápidamente sin entropía y pausa. Por eso se --key-gencuelga. Pero después de la instalación haveged, cat /dev/randomdebe proporcionar salida de forma continua.

Wisbucky
fuente