/dev/random and /dev/urandom are writable. If you write entropy to them, your entropy pool grows. cat /proc/sys/kernel/random/entropy_avail
grows.
You may wirte any kind of data to /dev/urandom.# cat MyWordDocument.txt > /dev/urandom
done as root! This is not a good source- but it is one source. If you write many of your documents (thousands of them) to /dev/urandom this will be a better source of entropy - but not a high quality type of entropy. If one would write .jpeg or .png or all his Data in /home to /dev/urandom it depends on the 'Mix' of the Data how good the generated entropy is.
ls -RU ~ | xargs -i cat {} > /dev/urandom
will not work on bash- you need perl's <>
. cp -RT ~ /dev/urandom
will not work too. If you would do that in a script hourly with cron your entropy pool looks fine but it is poisoned with copies of the same thing, on and on.
If you write good entropy to /dev/random too (from your PC - generated with cat /dev/random > entropy.txt
CTRL+C) you will get a good mix. But your PC is out of entropy then - dangerous on the internet. So never do this when being online.
Generate these .txt files offline and store them (I do that when my work is finished for the day). Your random seed may become poor - but if you play around with your mouse - put some CD's in your drive - play some of the build-in games (Tetris...) you generate new entropy. - The best solution is to buy a Geiger-counter and a radioactive source to do the job. Entropy sources for server farms. Up 10.000 bugs only.
So try to generate the pgp-key on a machine with good sources of entropy, like your PC in your office. Your /home on the virtual machine is empty - I think. If you got real change of data on that virtual machine, use that data in a intelligent way. Do a du -h "'/srv/Data~'"
or something like that. List it with ls; cat ./* ; dd ; ...
- Play around with it - and get some "good" entropy.
In professional hosting your hosting provider gives you a well tested and clean source of entropy - I hope so - do not cut this by extreme firewalling and isolating the virtual machine to that specially made source. You become a cryptographic Zombie on the internet. (Ask the hosting provider how it is done on their servers.)