> ## Documentation Index
> Fetch the complete documentation index at: https://docs.edisglobal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Устранение задержек OpenSSH на ВМ из-за нехватки энтропии

> Как устранить задержки запуска OpenSSH на виртуальных машинах из-за нехватки энтропии: передача энтропии с хоста через VirtIO RNG и другие способы.

> [!NOTE]
>
> Параметры QEMU далее в статье относятся к **настройкам администратора гипервизора**. Их нельзя применить изнутри VPS EDIS Global. На арендованном VPS начните с проверок в гостевой системе ниже и обратитесь в поддержку, если результаты указывают на отсутствие виртуального устройства RNG.

## Проверьте причину, прежде чем что-либо менять

Медленное подключение по SSH не обязательно связано с энтропией. Различайте задержку при загрузке или создании ключей хоста и задержку при обычном входе. В Debian/Ubuntu проверьте:

```bash theme={"system"}
sudo journalctl -b -u ssh --no-pager
sudo journalctl -b -k --no-pager
cat /sys/class/misc/hw_random/rng_available
```

Последний файл перечисляет драйверы RNG, доступные гостевой системе, если они есть. Само по себе отсутствие файла не доказывает, что именно это вызывает задержку SSH. Обращаясь в поддержку, приложите соответствующие временные метки и сообщения журналов.

## Как хост может предоставить устройство энтропии

## Проблема: OpenSSH задерживает запуск системы

Гостевые виртуальные машины (ВМ) могут испытывать задержки при запуске служб, например `OpenSSHd`, из-за недостаточной энтропии. Особенно это заметно при загрузке, когда службы блокируются в ожидании энтропии от `/dev/[u]random` или `getrandom()` в новых версиях Linux. Нехватка энтропии может увеличить время загрузки до одной минуты.

## Обзор решения

Энтропию можно передавать гостевым ВМ непосредственно с хоста, используя возможность QEMU предоставлять гостевой системе источник энтропии, например `/dev/urandom`. Это обеспечивает постоянное поступление энтропии без перегрузки хоста.

## Что такое энтропия?

В вычислительных системах энтропия — это **случайность**, которую операционная система собирает для криптографических и других операций, требующих случайных данных. Источниками могут быть аппаратные события: движения мыши, ввод с клавиатуры или системные прерывания.

Энтропия необходима для безопасности и непредсказуемости криптографических ключей, защищённой связи и генерации случайных чисел. В виртуальных средах физические события ввода ограничены, поэтому доступной энтропии может не хватать, что задерживает зависящие от неё операции.

Дополнительные источники энтропии, например VirtIO RNG, позволяют гостевым ВМ преодолеть эти ограничения и обеспечить стабильную работу служб, которым нужны случайные данные.

***

## Настройка

### Использование VirtIO RNG (генератора случайных чисел)

VirtIO позволяет эффективно передавать энтропию гостевой ВМ. Для его включения выполните следующие действия.

**Измените командную строку QEMU**
Добавьте следующие параметры к командной строке QEMU вашей ВМ:

```bash theme={"system"}
-object rng-random,id=rng0,filename=/dev/urandom \
-device virtio-rng-pci,rng=rng0,max-bytes=1024,period=1000
```

*rng-random:* указывает источник энтропии (`/dev/urandom`) на хосте.

*virtio-rng-pci:* передаёт источник энтропии гостевой системе через интерфейс VirtIO.

*max-bytes* и *period*: ограничивают скорость передачи, чтобы поставщик энтропии не потреблял слишком много ресурсов CPU.

Описание источников RNG и виртуальных устройств есть в [документации по запуску QEMU](https://qemu-project.gitlab.io/qemu/system/invocation.html).

**Проверьте совместимость**

Гостевые системы с ядром Linux начиная с версии `2.6.32` могут автоматически использовать источник энтропии VirtIO после перезагрузки. Для более старых ядер и других ОС убедитесь, что драйвер VirtIO RNG поддерживается и включён.

***

### Установка PRNG в гостевой системе (необязательно)

Для старой системы с подтверждённой проблемой нехватки энтропии оцените возможность использования `haveged` по документации вашего дистрибутива. Не устанавливайте дополнительную службу энтропии только потому, что SSH кажется медленным. Если вы определили, что она подходит вашей системе:

```bash theme={"system"}
sudo apt update
sudo apt install haveged
```

Запустите службу и включите её автоматический запуск:

```bash theme={"system"}
sudo systemctl start haveged
sudo systemctl enable haveged
```

***

## Преимущества VirtIO RNG

* Постоянная и быстрая передача энтропии с хоста.

* Отсутствие значительных задержек у гостевых служб, зависящих от генерации случайных чисел.

* Ограничение скорости предотвращает чрезмерное использование CPU хоста.

***

## Что следует учитывать

* Убедитесь, что на хосте достаточно энтропии для всех подключённых ВМ.

* Для задач с повышенными требованиями к безопасности оцените, соответствует ли источник `/dev/urandom` вашим требованиям.

***

## Заключение

Настройка VirtIO RNG или использование PRNG, например `haveged`, может значительно сократить задержки запуска служб гостевой ВМ и повысить общую производительность системы.


## Related topics

- [Уязвимость RegreSSHion в OpenSSH](https://docs.edisglobal.com/ru/advanced-setup-guides/security-advisories/regresshion-openssh-vulnerability.md)
- [Образы Turnkey для OpenVPN на EDIS VPS (устарело)](https://docs.edisglobal.com/ru/advanced-setup-guides/installing-openvpn-with-turnkey.md)
- [Установка Cockpit на VPS Debian 13 для управления через веб](https://docs.edisglobal.com/ru/advanced-setup-guides/install-cockpit-on-vps.md)
- [Как пользоваться бесплатным тестом задержки EDIS Global](https://docs.edisglobal.com/ru/faq/ip-addresses/free-latency-test-guide.md)
- [Как быстро я получу данные для доступа к VPS?](https://docs.edisglobal.com/ru/faq/billing-lifecycle/how-fast-instant-delivery.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.