Acabei de passar por isso no meu novo servidor doméstico, demorou muito para googlar e adivinhar, mas eu tenho que trabalhar. Vou tentar reproduzir os passos aqui. Eu estou usando o Ubuntu Server 11.10, e comecei com uma instalação praticamente padrão usando o LVM criptografado, então vou relatar as mudanças que fiz a partir daí.
Configuração:
- / dev / sda1 é minha partição não criptografada / boot
- / dev / sda5 é minha partição lvm que contém todo o resto - root, swap e home
- / dev / sdc1 é a partição na minha unidade flash USB onde armazenarei o arquivo de chaves
Primeiro, criei um arquivo-chave, apenas no meu diretório pessoal:
dd if=/dev/urandom of=keyfile bs=512 count=4
(você pode usar um tamanho maior de blocos ou contar para uma chave maior)
Diga cryptsetup a nova chave (é o conteúdo que é importante, não o nome do arquivo):
sudo cryptsetup luksAddKey /dev/sda5 keyfile
Depois, formatei minha unidade flash USB com ext2 e dei a ela um rótulo. Eu usei uma etiqueta, para que depois eu possa montá-la pela etiqueta e substituir a unidade flash USB, caso algo dê errado.
sudo mkfs -t ext2 /dev/sdc1
sudo e2label /dev/sdc1 KEYS
(claro, o seu dispositivo irá variar)
Agora, copie o arquivo de chaves para a unidade flash USB, de propriedade do modo raiz 400:
mkdir KEYS
sudo mount /dev/sdc1 KEYS
sudo cp keyfile KEYS
sudo chown root KEYS/keyfile
sudo chmod 400 KEYS/keyfile
Modifique o / etc / crypttab. Mina originalmente contida
sd5_crypt UUID=(...) none luks
que eu mudei para
sd5_crypt UUID=(...) /dev/disk/by-label/KEYS:/keyfile luks,keyscript=/lib/cryptsetup/scripts/passdev
Por fim, atualize o initramfs:
sudo update-initramfs -uv
Ele agora inicializa usando o arquivo de chaves na unidade flash USB. Se eu remover a unidade flash (por exemplo, quando saio de férias), ela não inicializa e meus dados são seguros.
Se alguém souber como obtê-lo para solicitar a senha, se a unidade flash USB estiver ausente, isso será útil como substituto. Espero que isso ajude, quaisquer acréscimos ou correções seriam mais que bem-vindos!