web-dev-qa-db-ja.com

CentOS 6でgpg --gen-keyが十分なエントロピーを獲得するときにハングする

サーバーのキーを生成しようとしています。

gpg --gen-key

多くのランダムなバイトを生成する必要があります。素数生成中に他のアクション(キーボードでの入力、マウスの移動、ディスクの利用)を実行することをお勧めします。これにより、乱数ジェネレーターが十分なエントロピーを獲得するチャンスが高まります。

そこにぶら下がっています。

別のエラーがあります:

`/root/.gnupg/S.gpg-agent 'に接続できません:そのようなファイルやディレクトリはありません

それは後に消えるようです:

gpg-agent --daemon
GPG_AGENT_INFO =/tmp/gpg-4c5hyT/S.gpg-agent:1397:1; GPG_AGENT_INFOをエクスポートします。

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

しかし、繰り返しますが、「...十分なエントロピーを得る」でハングします。

「++++++++++++++++++++++++++++++++++++++++++」はありませんキーが生成されるので、フォーラムの投稿からは期待されるはずです。

パッケージを再インストールしてみましたが、どうやらすべてがgpgに依存しているようです。

Centos 6でもこれに問題がある他の人たちを読んだことがあります(centos 5は正常に動作します)。

/var/log/*に注目すべきものはありません。

ここからどこへ行くべきかについてのアイデアはありますか?

ありがとう。

52
stormdrain

gpg --gen-keyコマンドがこのようにハングしたら、別のシェルにログインして次のコマンドを実行します。

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

/dev/zeroへの書き込みは何もしないため、このコマンドは基本的にハードドライブから読み取り、出力を破棄します。)

数秒/分後、鍵生成コマンドが完了するはずです。

51
John

より信頼性の高い解決策として、乱数ジェネレータ関連のユーティリティをインストールできます。これにより、常に十分な乱数バイトが確保されます。

yum install rng-tools

次に/etc/sysconfig/rngdを編集してEXTRAOPTIONS="-r /dev/random"を追加します

サービスを開始する

 service rngd start

Voilaとあなたはその後幸せに暮らしています:)

24
golja

以前に与えられた両方のコメントは完全に元気です。しかし、ここは私の2セントです。

RHEL/centos 6とエントロピーの問題は、それらがティックレスカーネルであることです。したがって、これらのカーネル自体では、十分なエントロピーを生成しません。キーボードを接続したり、マウスを動かしたり、前述のようにddを使用したりする必要があります。

rngdデーモンは素晴らしく、ほとんどの商用エンティティが使用しています。

ただし、私が見た最善のアプローチは、専用TPMデバイスの使用です。それらは非常に高価な小さなハードウェアです。それらを置くと、rngdはハードウェアソースからのランダムな真のエントロピーを利用します。私の知る限り、富士通には優れたTPMデバイスがあります。

ええ、これら3つの方法はエントロピーの部分をほぼカバーしています。

8

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

Sshセッションを開く_Sudo apt-get install rng-tools_別のSSHウィンドウで_gpg --gen--key_を開き、最初のSSHセッションに戻って_Sudo rngd -r /dev/urandom_を実行します。gpgがキーを生成するまで実行します。

次に、rngdSudo kill -9 $(pidof rngd)を強制終了できます

5
rhinoceros.xn

他の応答をねじりますが、ルートではなく少なくとも1つのライナーです。

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

Key-gen-optionsには

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には、スーパーシークレットキーが含まれています。

4
Dave Brunkow

EXTRAOPTIONS = "-r/dev/random"の代わりにEXTRAOPTIONS = "-r/dev/urandom"が機能しました

3
Marjo Mercado

私がやった方法:

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

$GNUPGHOMEは、カスタムディレクトリを指すように設定されています。

1
user246890

私はすべてのソリューションを試してみましたが、havegedは他のユーザーが機能しない場合でも(特にユーザー入力やアクティビティが少ないヘッドレスサーバーで)最適に機能することがわかりました。

yum install haveged

apt install haveged

/dev/randomをエントロピーで一杯に保つhavegedデーモンサービスを開始します。 --key-genは1分以内に完了します。

cat /dev/randomを実行すると確認できます。通常、エントロピーがすぐになくなり、一時停止します。そのため、--key-genがハングします。ただし、havegedをインストールした後、cat /dev/randomは継続的に出力を提供します。

1
wisbucky