Сабж для генерации ключей в явно заданный момент - например, сразу после установки пакетов (много работы с сетью и накопителями). Сейчас они генерируются только сразу после загрузки в условиях низкой энтропии.
В реализации service sshd вижу функцию gen_host_keys() { ssh-keygen -A || exit } Можно, конечно, сделать ей интерфейс, но не проще ли запускать этот самый ssh-keygen -A без посредников?
Не реализовано. openssh 9.6p1-alt7: в alt/sshd.init:30-33 есть функция gen_host_keys() { ssh-keygen -A || exit; }, она вызывается из start (:38) и reload (:59), но в case на строках 75-108 (start|stop|reload|restart|condstop|condrestart|condreload|check|status) отдельного действия keygen нет. Под systemd ключи генерирует ExecStartPre=/usr/bin/ssh-keygen -A в sshd.service. Позиция из комментария 1 — вызывать ssh-keygen -A напрямую — по-прежнему рабочий путь, а исходный мотив (мало энтропии сразу после загрузки) на ядрах 5.6 и новее практически утратил силу: getrandom() после инициализации CRNG не блокируется. Если действие всё же нужно, оно добавляется одной строкой в case: keygen) gen_host_keys ;; — решение за сопровождающими.