Я пытаюсь увеличить энтропию нескольких экземпляров Ubuntu 13.04 ec2, запустив
ssh -n -o StrictHostKeyChecking=no -i ... user@host "sudo rngd -r /dev/urandom -o /dev/random -t 10"
из удаленного блока. Однако rngd, похоже, ничего не делает, пока я не захожу на vm. По крайней мере, если я вхожу в систему и сразу же запускаю cat /proc/sys/kernel/random/entropy_avail
, он дает числа около 150. Через несколько секунд он дает числа в 3000. Если я использую ssh для удаленного запуска cat /proc/sys/kernel/random/entropy_avail
без входа в систему, я получаю результаты также около 150.
Это общая проблема демона, связанная с тем, что делает rngd?
Моя ошибка заключалась в использовании "
вместо '
. Насколько я понимаю, использование "
заставляет оболочку интерпретировать строку при запуске команды ssh на локальном компьютере. Я не уверен, что передавалось на удаленные машины, возможно, результат команды. '
заставит оболочку передавать строку без изменений.
ssh -n -o StrictHostKeyChecking=no -i ... user@host 'sudo rngd -r /dev/urandom -o /dev/random -t 10'
работает. В конце концов я решил использовать hasged вместо:
ssh -n -o StrictHostKeyChecking=no -i ... user@host 'sudo apt-get install haveged'
Это все, что нужно сделать. Он установит hasged, запустит его и добавит запись для запуска при загрузке.