O instalador (di) do Debian enfrentou um problema semelhante e sua solução pode ser considerada útil. Primeiramente, uma nota sobre a arquitetura do di: di é modular, portanto, adicionando componentes na forma de udebs, você pode adicionar funcionalidades. os udebs podem ser adicionados durante a geração ou execução da imagem, o módulo em que você está interessado é o console de rede. se você deseja instalar módulos automaticamente em tempo de execução, um arquivo preseed fará isso.
Agora, aqui está como o módulo do console de rede funciona:
obtém a senha a ser usada no console local duas vezes (a pré-configuração pode definir isso com antecedência ou usar uma senha já com hash.
ele gera uma entrada no arquivo de senha
gera uma chave de host
começa sshd.
ele define um gancho para copiar a chave do host gerada no sistema instalado.
as desvantagens conhecidas dessa abordagem são:
pré-configurar a senha não é muito segura.
executar novamente o instalador irá gerar uma chave de host diferente.
o problema da senha pode ser atenuado instalando uma lista de chaves autorizadas em vez de uma senha (e usando um hash de senha inválido.
As partes relevantes do meu arquivo preseed são:
d-i anna/choose_modules string network-console,openssh-client-udeb
#d-i anna/choose_modules seen false
d-i network-console/password password r00tme
d-i network-console/password-again password r00tme
d-i preseed/early_command string mkdir .ssh; cd .ssh; wget http://192.168.0.1/debian/authorized_keys