gpg --gen-keyは、centos 6で十分なエントロピーを取得するとハングします


49

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

gpg --gen-key

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

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

別のエラーがあります:

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

後に消えるようだ:

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

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

「++++++++++++++++++++++++++++++++++++++++++++」というものはありませんキーが生成されるため、フォーラムの投稿からは予想されるはずです。

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

CentOS 6でもこれに問題がある他の人を読んだことがあります(Centos 5でも問題ありません)。

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

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

ありがとう。


rng-toolsは、HSMを使用している場合のみのソリューションです。これを推奨しない回答は、これがないシステムでは失敗します。次のようなメッセージが表示されます
。StartingHardware

回答:


49

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

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

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

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


2
驚くばかり。ありがとうございました。マニュアルのその部分を見逃したとは信じられません:/
stormdrain

2
毎回異なるエントロピーを取得することをお勧めします。システムが絶えずエントロピーを使い果たしている場合、構成に何かひどい問題があるか、エントロピーを非常に速く使い果たしています(ハードウェアRNGが必要なポイントまで)。定期的により多くのエントロピーが必要な場合は、Humboldt-UniversitätのQuantum RNGのように、さらにダウンロードするだけの有効な場所があります。
クリスS

19
実際に試してみましたが、ルートを持っていなかったため、/ dev / sdaに直接アクセスできませんでした。私の代わりに働いたのはfind / | xargs file
-carl.anderson

2
私はより快適に実行されていたfind / | xargs file代わりにdd if=/dev/sda of=/dev/zero、それが行われていた分後。ありがとう!
リー

1
という意味of=/dev/nullですか?
maxschlepzig

22

より信頼性の高いソリューションを得るには、乱数ジェネレーター関連のユーティリティをインストールします。これにより、常に十分なランダムバイトが確保されます。

yum install rng-tools

その後、編集/etc/sysconfig/rngdして追加しますEXTRAOPTIONS="-r /dev/random"

サービスを開始する

 service rngd start

出来上がりとあなたは幸せに生きます:)


5
サービスを開始したくない場合は、インストールされrngd -r /dev/randomたらルートとして単純に実行できますrng-tools。キー生成はすぐに開始されます。
davidjb

2
しかし、それ自体はエントロピーを生成しません。
オテウス

7

前述の両方のコメントはまったく問題ありません。しかし、これは私の2セントです。

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

rngdデーモンは素晴らしく、ほとんどの営利団体が使用しています。

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

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


とても興味深い。ありがとうございました。クリスに言ったように、RNGが付属するHSMにすぐにアクセスできます。
雨水管

4

ルートではなく、少なくとも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: myuser@email.com
Expire-Date: 0

Output-key.txtにはスーパーシークレットキーが含まれています。




1

私がやった方法:

  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

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

yum install haveged

apt install haveged

エントロピーに満ちたhavegedデーモンサービスを開始します/dev/random--key-gen1分以内に完了するはずです。

を実行して確認できcat /dev/randomます。通常、エントロピーがすぐになくなり、一時停止します。それ--key-genがハングする理由です。しかし、インストール後havegedcat /dev/random継続的に出力を提供する必要があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.