Пытаюсь сгенерировать ключ для сервера.
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/*
.
Есть идеи, куда идти дальше?
Спасибо.
Когда gpg --gen-key
команда зависает вот так, войдите в другую оболочку и выполните следующую команду:
dd if=/dev/sda of=/dev/zero
(Эта команда в основном читает с вашего жесткого диска и отбрасывает вывод, потому что запись в /dev/zero
ничего не будет делать.)
Через несколько секунд / минут команда генерации ключа должна завершиться.
Для более надежного решения вы можете установить утилиты, связанные с генератором случайных чисел, которые будут следить за тем, чтобы у вас всегда было достаточно случайных байтов.
yum install rng-tools
а затем отредактируйте /etc/sysconfig/rngd
и добавить EXTRAOPTIONS="-r /dev/random"
Запустить сервис
service rngd start
Вуаля и живете долго и счастливо :)
Оба комментария, приведенные ранее, совершенно нормальны. Но вот только мои 2 цента.
Проблема с RHEL / centos 6 и энтропией в том, что это ядра без тиков. Таким образом, сами по себе эти ядра не генерируют достаточного количества энтропии. Вы должны подключить клавиатуру или даже какое-то движение мыши или использовать dd, как упоминалось.
Демон rngd великолепен, и большинство коммерческих организаций его используют.
Однако лучший подход, который я видел, - это использование специального устройства TPM. Это небольшое оборудование, которое довольно дорогое. Вы помещаете их, и rngd использует случайную истинную энтропию от источника оборудования. Насколько мне известно, у Fujitsu есть хорошее устройство TPM.
Да, эти три метода в значительной степени покрывают энтропийную часть.
https://gist.github.com/franciscocpg/1575d286548034113884c3185ca88681
Откройте сеанс ssh
sudo apt-get install rng-tools
В другом окне SSH откройте
gpg --gen--key
Вернитесь к своему первому сеансу SSH и запустите
sudo rngd -r /dev/urandom
Пусть это будет продолжаться, пока gpg не сгенерирует ваши ключи!
Тогда ты можешь убить rngd
sudo kill -9 $(pidof rngd)
Включите другие ответы, но хотя бы один лайнер, а не рут.
((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 содержит мой суперсекретный ключ.
EXTRAOPTIONS = "- r / dev / urandom" работал у меня вместо EXTRAOPTIONS = "- r / dev / random"
Я перепробовал все решения и обнаружил, что haveged
работает лучше всего, даже когда другие не работают (особенно на безголовом сервере, на котором мало пользовательского ввода или активности).
yum install haveged
apt install haveged
Это начинает haveged
служба демона, которая будет держать /dev/random
полный энтропии. --key-gen
должно завершиться менее чем за минуту.
Вы можете проверить, запустив cat /dev/random
. Обычно энтропия быстро иссякает, и она останавливается. Вот почему --key-gen
зависает. Но после установки haveged
, cat /dev/random
должен обеспечивать вывод непрерывно.
Как я это сделал:
pacman -S community/rng-tools
vim /etc/conf.d/rngd
добавить RNGD_OPTS="-r /dev/urandom"
systemctl enable --now rngd
gpg-agent --daemon
gpg --full-gen-key
Работал даже когда $GNUPGHOME
указывает на настраиваемый каталог.