環境: vagrant,virtualBox, Mac Book(macOS Catalina)
OS: CentOS6.5
GnuPGでファイルを暗号化する前に鍵を生成しようと思いました。
# gpg --gen-key gpg (GnuPG) 2.0.14; Copyright (C) 2009 Free Software Foundation, Inc. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Please select what kind of key you want: (1) RSA and RSA (default) (2) DSA and Elgamal (3) DSA (sign only) (4) RSA (sign only) Your selection? 1 RSA keys may be between 1024 and 4096 bits long. What keysize do you want? (2048) Requested keysize is 2048 bits Please specify how long the key should be valid. 0 = key does not expire <n> = key expires in n days <n>w = key expires in n weeks <n>m = key expires in n months <n>y = key expires in n years Key is valid for? (0) Key does not expire at all Is this correct? (y/N) y GnuPG needs to construct a user ID to identify your key. Real name: ********** Email address: *********** Comment: test gpg You selected this USER-ID: "*********** (test gpg) ***************" Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O You need a Passphrase to protect your secret key. can't connect to `/home/vagrant/.gnupg/S.gpg-agent': No such file or directory gpg-agent[8846]: directory `/home/vagrant/.gnupg/private-keys-v1.d' created We need to generate a lot of random bytes. It is a good idea to perform some other action (type on the keyboard, move the mouse, utilize the disks) during the prime generation; this gives the random number generator a better chance to gain enough entropy.
ここで乱数生成のためにエントロピープールを貯めます。マウスを動かしたり、キーボードを入力するように促されているため、色々と打ってみてもうんともすんとも言いません。理由は何か考えました。
# watch -n 1 cat /proc/sys/kernel/random/entropy_avail
Every 1.0s: cat /proc/sys/kernel/random/entropy_avail Fri Apr 24 05:44:24 2020 25 ## 0 - 64の範囲で無限に繰り返す(64まで行ったあとインクリメントされ0に戻る)
どうやら、エントロピープールの最大値が足らず、乱数生成されないようです。そこで、プールサイズを確かめてみました。
# cat /proc/sys/kernel/random/poolsize 4096
4096バイトあるようです・・・。64で止まる理由がよく分かりません。
追記
マウスやキーボードでかちゃかちゃ打ってエントロピーを貯めても良いんですが、それだと大変なので次のようにハードウェアをダンプすることでエントロピーを上げてみましたが上記と同じ問題が生じ、やはり鍵生成には至りませんでした。
# dd if=/dev/sda of=/dev/null
あなたの回答
tips
プレビュー