gpg --gen-key trava para ganhar entropia suficiente no centos 6

49

Tentando gerar uma chave para um servidor.

gpg --gen-key

Precisamos gerar muitos bytes aleatórios. É uma boa idéia executar outra ação (digitar no teclado, mover o mouse, utilizar os discos) durante a geração principal; isso dá ao gerador de números aleatórios uma chance melhor de obter entropia suficiente.

e só fica lá.

Há outro erro:

não é possível conectar-se ao `/root/.gnupg/S.gpg-agent ': esse arquivo ou diretório não existe

que parece desaparecer depois:

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

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

mas, novamente, ele paira em "... ganhar entropia suficiente".

Não existem "++++++++++++++++++++++++++++++++++++++++++++++++++" "que das postagens no fórum deve ser esperado à medida que a chave é gerada.

Eu tentei reinstalar o pacote, mas aparentemente tudo depende do gpg.

Eu li outras pessoas com problemas com isso no centos 6 também (enquanto o centos 5 funciona bem).

Não há nada de notável /var/log/*.

Alguma idéia de onde ir a partir daqui?

Obrigado.

dreno de tempestade
fonte
O rng-tools é apenas uma solução se você tiver um HSM, respostas que recomendam que isso falhe em sistemas sem isso. Você verá uma mensagem como: Começando RNG Hardware entropia coletor daemon: (Hardware dispositivo RNG inode não encontrado)
JohnErinthen

Respostas:

49

Quando o gpg --gen-keycomando parar dessa maneira, efetue login em outro shell e execute o seguinte comando:

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

(Este comando basicamente lê do seu disco rígido e descarta a saída, porque gravar em /dev/zeronão fará nada.)

Após alguns segundos / minutos, o comando de geração de chaves deve ser concluído.

John
fonte
2
Impressionante. Obrigado. Eu não posso acreditar que eu perdi essa parte do manual: /
stormdrain
2
Seria uma idéia muito melhor pegar uma entropia diferente a cada vez. Se seu sistema está constantemente ficando sem entropia, algo está terrivelmente errado com sua configuração ou você está usando a entropia muito rapidamente (até o ponto em que você deve ter um RNG de hardware). Se você precisar de mais entropia regularmente, há locais válidos para simplesmente fazer o download de mais, como o Quantum RNG da Humboldt-Universität .
Chris S
19
Na verdade, eu tentei isso, mas como não tinha root, não consegui acessar o / dev / sda diretamente. O que funcionou para mim foifind / | xargs file
carl.anderson 15/03
2
Eu estava mais confortável correndo ao find / | xargs fileinvés de dd if=/dev/sda of=/dev/zeroe depois de um minuto estava pronto. Obrigado!
Lea
11
Você quer dizer of=/dev/null?
maxschlepzig
22

Para uma solução mais confiável, você pode instalar utilitários relacionados ao gerador de números aleatórios, o que garantirá que você sempre tenha bytes aleatórios suficientes.

yum install rng-tools

e depois edite /etc/sysconfig/rngde adicioneEXTRAOPTIONS="-r /dev/random"

Iniciar o serviço

 service rngd start

Voila e você vive feliz para sempre :)

golja
fonte
5
Se você não deseja iniciar o serviço, basta executar rngd -r /dev/randomcomo root uma vez rng-toolsinstalado. Sua geração de chaves será decolada imediatamente.
Davidjb
2
Mas isso não gera entropia.
Otheus 19/09/16
7

Ambos os comentários apresentados anteriormente estão perfeitamente corretos. Mas aqui estão apenas meus 2 centavos.

O problema com o RHEL / centos 6 e a entropia é que eles são kernels sem tick. Portanto, esses núcleos não geram entropia suficiente. Você precisa conectar um teclado ou até mover o mouse ou usar o dd conforme mencionado.

O dang rngd é impressionante e a maioria das entidades comerciais o usa.

No entanto, a melhor abordagem que vi foi o uso de um dispositivo TPM dedicado. Eles são pequenos equipamentos que são bastante caros. Você os coloca e o rngd utiliza entropia verdadeira aleatória da fonte de hardware. Até onde eu sei, a Fujitsu possui um bom dispositivo TPM.

Sim, esses três métodos praticamente cobrem a parte da entropia.

Soham Chakraborty
fonte
Muito interessante. Obrigado. Como mencionei a Chris, em breve terei acesso a um HSM que vem com um RNG.
stormdrain
4

Torça em outras respostas, mas pelo menos um liner e não raiz.

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

Key-gen-options contém

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 contém minha chave super secreta.

Dave Brunkow
fonte
4

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

Abra uma sessão ssh sudo apt-get install rng-tools Em outra janela SSH aberta gpg --gen--key Volte para a sua primeira sessão SSH e execute sudo rngd -r /dev/urandom Deixe que isto corra até que o gpg gere suas chaves!

Então você pode matar rngd sudo kill -9 $(pidof rngd)

rhinoceros.xn
fonte
3

EXTRAOPTIONS = "- r / dev / urandom" funcionou para mim em vez de EXTRAOPTIONS = "- r / dev / random"

Marjo Mercado
fonte
1

Como eu fiz isso:

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

Funcionou mesmo quando $GNUPGHOMEestá definido para apontar para um diretório personalizado.


fonte
1

Eu tentei todas as soluções e descobri que havegedfunciona melhor mesmo quando outras pessoas não funcionam (especialmente em um servidor sem cabeça que não possui muita entrada ou atividade do usuário).

yum install haveged

apt install haveged

Inicia o havegedserviço daemon que manterá /dev/randomcheio de entropia. --key-gendeve concluir em menos de um minuto.

Você pode verificar executando cat /dev/random. Normalmente, fica rapidamente sem entropia e pausa. É por isso que --key-gentrava. Mas após a instalação haveged, cat /dev/randomdeve fornecer saída continuamente.

wisbucky
fonte