it-swarm-eu.dev

GPG n'a pas assez d'entropie

J'ai une tonne de processus en cours d'exécution pour essayer d'obtenir suffisamment d'entropie, mais j'échoue toujours.

**We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.
Not enough random bytes available.  Please do some other work to give
the OS a chance to collect more entropy! (Need 210 more bytes)**

J'ai besoin d'une méthode pour générer la clé qui fonctionne, car ce que j'essaie de faire échoue apparemment.

87
Joey BagODonuts

Avez-vous regardé RNG?

Types Fedora/Rh/Centos: Sudo yum install rng-tools

Sur les types deb: Sudo apt-get install rng-tools pour le configurer.

Exécutez ensuite Sudo rngd -r /dev/urandom avant de générer les clés.

Référence: http://it.toolbox.com/blogs/lim/how-to-generate-enough-entropy-for-gpg-key-generation-process-on-Fedora-linux-38022

115
Danny Staple

J'ai pu générer la clé en

apt-get install rng-tools

Dans une autre fenêtre SSH ouverte

 gpg --gen-key

Revenez à votre première session SSH et exécutez

Sudo rngd -r /dev/urandom

Laissez cette course jusqu'à ce que gpg génère vos clés!

29
Joey BagODonuts

Pour vérifier le nombre d'octets d'entropie actuellement disponibles, utilisez

cat /proc/sys/kernel/random/entropy_avail

Le godet d'entropie mesure 4096 octets, ce qui peut très rapidement être épuisé.

En utilisant ce petit outil de "vitesse de lecture" ( http://1wt.eu/tools/readspeed/ ), vous pouvez mesurer la vitesse à laquelle le seau d'entropie est rempli avec différentes méthodes.

Par exemple, lancez:

$ ./readspeed < /dev/random

et déplacez votre souris. Vous verrez que "readspeed" vide le seau d'entropie dès qu'il est rempli, et lorsque vous déplacez la souris, il se remplit un peu.

En essayant différentes méthodes, il semble que la saisie au clavier et les mouvements de la souris soient les plus efficaces pour reconstituer ce compartiment. Les transferts réseau et les copies de disque dur n'ont pas beaucoup d'influence.

Enfin, des dispositifs de génération d'entropie sont disponibles, comme celui-ci: http://www.entropykey.co.uk/ .

14
Julien Vehent

+1 pour rng-tools

Dans le cas où vous êtes coincé dans la situation comme je le suis - je n'ai pas l'autorisation d'installer de nouveaux logiciels (rng-tools) sur un serveur sans tête avec pratiquement aucun matériel d'entrée (carte son, clavier, souris) attaché. Vous pouvez exécuter ce code simple à partir d'un autre terminal connecté au même serveur, pour ajouter à l'entropie. Peu importe que vous commenciez à l'exécuter avant ou après le démarrage de gpg --gen-key

$ Nice -n 19 bash
$ until [ $COUNT -lt 1 ]; do
  let COUNT=`cat /proc/sys/kernel/random/entropy_avail`
  echo "`date` COUNTER $COUNT"
done

La première ligne est de démarrer un nouveau shell bash, avec une priorité plus faible (je devais être Nice sur un serveur partagé par de nombreux utilisateurs). La boucle jusqu'à est infinie, pensez donc à la rompre une fois la clé générée. Tout ce qu'il fait, c'est que le trafic réseau augmente l'entropie. Il surveille également le compteur entropy_avail pour montrer comment il est rempli et vidé de l'autre côté par gpg. Dans mon cas, le compteur s'est rempli rapidement à 64 et a été vidé à 0 (devinez que gpg reprend par tranche de 64). J'attendais la génération de clés 4096 bits depuis plus de 3 heures sur le serveur. Après avoir commencé à exécuter ce script, il a été terminé en moins de 5 minutes.

9
Raj

J'étais lié et déterminé à générer l'entropie sur mon serveur sans tête Ubuntu 14.04 afin de générer une clé 4096 avec gpg --gen-key

Il existe un package pour générer l'entropie appelé haveged. Exemple d'installation:

Sudo apt-get install haveged

J'ai dû Sudo apt-get install rng-tools car il s'agit d'une dépendance dans le test suivant.

Exemple de test pour voir si l'entropie est générée par haveged:

cat /dev/random | rngtest -c 1000

Un très petit nombre d'échecs est acceptable dans tout générateur de nombres aléatoires, mais vous pouvez vous attendre à voir 998-1000 succès très souvent lors de l'utilisation en survol.

Je l'ai découvert dans un tutoriel ici:

https://www.digitalocean.com/community/tutorials/how-to-setup-additional-entropy-for-cloud-servers-using-haveged

J'ai maintenant des clés après avoir exécuté gpg --gen-key

7
dmmfll

haveged est le meilleur moyen, mais si vous ne pouvez rien installer, vous pouvez générer manuellement l'entropie. Cette méthode a permis à gpg --gen-ken pour terminer en 1 à 2 minutes sur ma machine (par rapport à 10 secondes avec haveged). C'est donc environ 10 fois plus lent.

Exécutez ceci dans un autre terminal pendant que gpg --gen-key est en cours d'exécution:

while true; do
    # print entropy available
    cat /proc/sys/kernel/random/entropy_avail
    # write a 1 MB stream of zeros to /tmp/foo
    # "conv=fdatasync" flushes the disk cache
    dd bs=1M count=1 if=/dev/zero of=/tmp/foo conv=fdatasync
done

Bon mot:

while true; do cat /proc/sys/kernel/random/entropy_avail; dd bs=1M count=1 if=/dev/zero of=/tmp/foo conv=fdatasync; done
1
wisbucky

Eh bien, c'est plus facile que je ne le pensais, par rapport aux solutions présentées ici:

ls -R /

Les octets aléatoires fournis par la commande ci-dessus étaient suffisants pour fournir l'entropie requise pour générer une paire de clés RSA/4096.

Extrait de: https://www.thingy-ma-jig.co.uk/blog/22-01-2010/generate -entropy-gnupg

0
ivanleoncz

J'ai rencontré ce problème lors de l'exécution de pacman-key --init dans Arch. Les autres solutions ici ne fonctionnaient pas bien pour moi, mais j'ai trouvé que le simple ping sur mon routeur fonctionnait bien: ping -f ip.of.my.router

0
Yona Appletree