Você tem várias soluções on-line (como aqui ) onde um pequeno servidor ssh (busybox + dropbear) é incluído no initrd para executá-lo no momento da inicialização antes da montagem do sistema de arquivos e deixá-lo ser contatado para fornecer a senha como entrada.
Você pode fazer algo em torno disso: no initrd, dentro do lançamento de um servidor sshd
para aguardar a conexão remota, inicie uma conexão ssh
com o host remoto armazenando chaves, com chaves ssh específicas, em ordem para obter o arquivo-chave (fazendo um scp), depois desbloqueando o sistema de arquivos local com a chave LUKS.
No entanto, não sem inconvenientes: é claro que você precisa excluir a chave LUKS baixada assim que o desbloqueio for feito ou você não ganhou nada. Ainda melhor se você encontrar uma maneira de tê-lo na RAM apenas pelo tempo necessário e não armazenado em qualquer lugar. Além disso, qualquer invasor capaz de ler o conteúdo de seu initrd pode encontrar a conexão ssh e sua chave ssh, contatar seu host remoto com eles e fazer o download da chave LUKS. Se isso acontecer, significa, no entanto, que o invasor está claramente segmentando você e dedicando tempo para estudar sua configuração específica. Isso está claramente fora do script infantil. Você deve pelo menos analisar cuidadosamente todas as conexões que baixaram a chave, os eventos devem estar vinculados a seus outros alertas de monitoramento mostrando que um determinado servidor está realmente reinicializando (o que novamente não protegerá você contra um invasor que tenha sido capaz de modificar seu initrd).
Você também tem que levar em conta casos em que a rede falha neste momento, scp
não consegue conectar, etc ... Assim tendo ao mesmo tempo a opção do pequeno servidor sshd
para poder conectar isso e depurar as coisas não é uma má ideia. Ou veja que tipo de soluções fora de banda seu provedor de nuvem pode oferecer.