web-dev-qa-db-fra.com

gpg --gen-key bloque à gagner suffisamment d'entropie sur centos 6

Essayer de générer une clé pour un serveur.

gpg --gen-key

Nous devons générer beaucoup d'octets aléatoires. C'est une bonne idée d'effectuer une autre action (taper sur le clavier, déplacer la souris, utiliser les disques) pendant la génération principale; cela donne au générateur de nombres aléatoires une meilleure chance de gagner suffisamment d'entropie.

et il se bloque juste là.

Il y a une autre erreur:

impossible de se connecter à `/root/.gnupg/S.gpg-agent ': aucun fichier ou répertoire de ce type

qui semble disparaître après:

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
...

mais encore une fois, il se bloque à "... gagner suffisamment d'entropie".

Il n'y a pas de "+++++++++++++++++++++++++++++++++++++++++++" qui à partir des messages du forum devrait être attendu lors de la génération de la clé.

J'ai essayé de réinstaller le paquet, mais apparemment, tout dépend de gpg.

J'ai lu d'autres personnes ayant des problèmes avec cela sur centos 6 aussi (alors que centos 5 fonctionne bien).

Il n'y a rien de remarquable dans /var/log/*.

Des idées sur où aller d'ici?

Merci.

52
stormdrain

Quand le gpg --gen-key commande se bloque comme ceci, connectez-vous à un autre Shell et exécutez la commande suivante:

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

(Cette commande lit essentiellement sur votre disque dur et supprime la sortie, car l'écriture dans /dev/zero ne fera rien.)

Après quelques secondes/minutes, la commande de génération de clés devrait se terminer.

51
John

Pour une solution plus fiable, vous pouvez installer des utilitaires liés au générateur de nombres aléatoires, qui vous assureront toujours d'avoir suffisamment d'octets aléatoires.

yum install rng-tools

puis éditez /etc/sysconfig/rngd et ajouter EXTRAOPTIONS="-r /dev/random"

Démarrez le service

 service rngd start

Voila et vous vivez heureux pour toujours :)

24
golja

Les deux commentaires précédents sont parfaitement corrects. Mais voici juste mes 2 cents.

Le problème avec RHEL/centos 6 et l'entropie est qu'ils sont des noyaux sans tique. Donc, en eux-mêmes, ces noyaux ne génèrent pas assez d'entropie. Vous devez attacher un clavier ou même un mouvement de souris ou utiliser dd comme mentionné.

le démon rngd est génial et la plupart des entités commerciales l'utilisent.

Cependant, la meilleure approche que j'ai vue est l'utilisation d'un périphérique TPM dédié. Ce sont de petits matériels assez chers. Vous les mettez et rngd utilise l'entropie vraie aléatoire de la source matérielle. Pour autant que je sache, Fujitsu a un bon appareil TPM.

Oui, ces trois méthodes couvrent à peu près la partie entropique.

8
Soham Chakraborty

https://Gist.github.com/franciscocpg/1575d286548034113884c3185ca88681

Ouvrez une session ssh Sudo apt-get install rng-tools Dans une autre fenêtre SSH, ouvrez gpg --gen--key Retournez à 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!

Ensuite, vous pouvez tuer rngd Sudo kill -9 $(pidof rngd)

5
rhinoceros.xn

Tordez les autres réponses mais au moins une doublure et non la racine.

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

Key-gen-options contient

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 contient ma clé super secrète.

4
Dave Brunkow

EXTRAOPTIONS = "- r/dev/urandom" a fonctionné pour moi au lieu d'EXTRAOPTIONS = "- r/dev/random"

3
Marjo Mercado

Comment je l'ai fait:

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

A fonctionné même lorsque $GNUPGHOME est défini pour pointer vers un répertoire personnalisé.

1
user246890

J'ai essayé toutes les solutions et j'ai découvert que haveged fonctionne le mieux même lorsque les autres ne fonctionnent pas (en particulier sur un serveur sans tête qui n'a pas beaucoup d'entrée ou d'activité de l'utilisateur).

yum install haveged

apt install haveged

Il démarre le service démon haveged qui conservera /dev/random plein d'entropie. --key-gen devrait se terminer en moins d'une minute.

Vous pouvez vérifier en exécutant cat /dev/random. Normalement, il s'épuisera rapidement et entrera en pause. C'est pourquoi le --key-gen bloque. Mais après avoir installé haveged, cat /dev/random devrait fournir une sortie en continu.

1
wisbucky