gpg --gen-key s'accroche pour gagner assez d'entropie sur centos 6

49

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 assez d'entropie.

et il est juste là.

Il y a une autre erreur:

ne peut pas se connecter à `/root/.gnupg/S.gpg-agent ': Aucun fichier ou répertoire de ce type

qui semble partir après:

gpg-agent --daemon
GPG_AGENT_INFO = / tmp / gpg-4c5hyT / S.gpg-agent: 1397: 1; exporter 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 assez d'entropie".

Il n'y a pas de "+++++++++++++++++++++++++++++++++++++++++++" à partir des messages du forum semble devrait être prévu que la clé est générée.

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

J'ai aussi lu d'autres lecteurs sur centos 6 (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.

Tempête Drainage
la source
rng-tools n’est une solution que si vous avez un HSM, les réponses qui le recommandent échoueront sur les systèmes sans cela. Vous verrez un message du type suivant: Démarrage du démon de rassembleur d'entropie RNG matériel: (Inode du périphérique RNG matériel introuvable)
JohnErinthen

Réponses:

49

Lorsque la gpg --gen-keycommande 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 rejette la sortie, car écrire dans /dev/zerone fera rien.)

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

John
la source
2
Impressionnant. Je vous remercie. Je ne peux pas croire que j'ai manqué cette partie du manuel: /
stormdrain
2
Ce serait une bien meilleure idée de saisir une entropie différente à chaque fois. Si votre système manque constamment d'entropie, il y a un problème majeur avec votre configuration ou vous utilisez l'entropie très rapidement (au point où vous devriez avoir un RNG matériel). Si vous avez besoin de plus d'entropie régulièrement, il existe des emplacements valides pour tout simplement en télécharger d'autres, comme le Quantum RNG de Humboldt-Universität .
Chris S
19
J'ai effectivement essayé cela, mais comme je n'avais pas de racine, je ne pouvais pas accéder directement à / dev / sda. Ce qui a fonctionné pour moi à la place a étéfind / | xargs file
carl.anderson
2
J'étais plus à l' aise en cours d' exécution au find / | xargs filelieu de dd if=/dev/sda of=/dev/zeroet après une minute , il a été fait. Merci!
Lea
1
Tu veux dire of=/dev/null?
maxschlepzig
22

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

yum install rng-tools

puis éditer /etc/sysconfig/rngdet ajouterEXTRAOPTIONS="-r /dev/random"

Démarrer le service

 service rngd start

Voilà et vous vivez heureux pour toujours :)

Golja
la source
5
Si vous ne souhaitez pas démarrer le service, vous pouvez simplement l'exécuter en rngd -r /dev/randomtant que root une fois rng-toolsinstallé. Votre génération de clé va décoller immédiatement.
davidjb
2
Mais cela ne génère pas d'entropie.
Otheus
7

Les deux commentaires donnés avant sont parfaitement bien. Mais voici juste mes 2 cents.

Le problème avec RHEL / centos 6 et l’entropie est qu’il s’agit de noyaux sans tache. Donc, à eux seuls, ces noyaux ne génèrent pas assez d'entropie. Vous devez avoir un clavier connecté ou même un mouvement de souris ou utiliser dd comme indiqué.

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

Cependant, la meilleure approche que j'ai vue consiste à utiliser un périphérique TPM dédié. Ce sont de petits matériels assez chers. Vous les mettez et rngd utilise une entropie vraie aléatoire à partir de la source matérielle. Pour autant que je sache, Fujitsu possède un bon périphérique TPM.

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

Soham Chakraborty
la source
Très intéressant. Je vous remercie. Comme je l'ai mentionné à Chris, j'aurai bientôt accès à un HSM qui vient avec un GNR.
stormdrain
4

Twist sur d'autres réponses, mais au moins une doublure et non 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.

Dave Brunkow
la source
4

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

Ouvrir une session SSH sudo apt-get install rng-tools Dans une autre fenêtre SSH, ouvrez gpg --gen--key Revenez à votre première session SSH et exécutez sudo rngd -r /dev/urandom Laisser exécuter jusqu'à ce que gpg génère vos clés!

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

rhinocéros.xn
la source
3

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

Marjo Mercado
la source
1

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

Travaillé même quand $GNUPGHOMEest défini pour pointer vers un répertoire personnalisé.


la source
1

J'ai essayé toutes les solutions et j'ai constaté que cela havegedfonctionnait le mieux, même lorsque d'autres solutions ne fonctionnaient pas (en particulier sur un serveur sans tête qui n'a pas beaucoup de saisie ou d'activité de la part de l'utilisateur).

yum install haveged

apt install haveged

Il démarre le havegedservice démon qui va rester /dev/randomplein d'entropie. --key-gendevrait se terminer en moins d’une minute.

Vous pouvez vérifier en exécutant cat /dev/random. Normalement, il va rapidement manquer d’entropie et faire une pause. C'est pourquoi les --key-genpendants. Mais après l'installation haveged, cat /dev/randomdevrait fournir une sortie en continu.

sage
la source