Luks, ssh unlock, comportamento estranho, arquivo authorized_keys inválido

3

Não sei porquê, mas não consigo seguir estas instruções no meu debian stable. Depois de instalar o dropbear e o busybox, tentei executar initramfs -u . Eu cheguei aqui um aviso estranho:

# update-initramfs -u
update-initramfs: Generating /boot/initrd.img-4.9.0-4-amd64
dropbear: WARNING: Invalid authorized_keys file, remote unlocking of cryptroot via SSH won't work!

Em seguida, tentei procurar no arquivo /etc/initramfs-tools/root/.ssh/id_rsa , mas não há a pasta root na pasta initramfs. Eu também tentei correr

dropbearkey -t dss -f /etc/initramfs-tools/etc/dropbear/dropbear_dss_host_key

mas não há pasta /etc/initramfs-tools/etc/ , então esse comando também falha. É claro que posso criar essas pastas, mas receio que esse comportamento estranho não venha de um erro mais profundo. Se puder ajudar, aqui está o conteúdo da pasta initramfs:

me@server:/etc/initramfs-tools# ls
conf.d  hooks  initramfs.conf  modules  scripts  update-initramfs.conf

Obrigado!

    
por tobiasBora 20.12.2017 / 02:39

2 respostas

3

Eu finalmente encontrei uma solução graças a alguma ajuda em #debian. Em debian recente, o procedimento parece ser bem diferente. Aqui está o novo:

Primeiro, certifique-se de que dropbear e dropbear-initramfs estejam instalados

sudo apt install busybox dropbear*

adicione sua chave pública (na maioria das vezes ~/.ssh/id_rsa.pub ) no arquivo /etc/dropbear-initramfs/authorized_keys .

Atualize então initramfs para levar em conta as alterações: : update-initramfs -u

Isso é tudo!

Note que, se você quer evitar um confronto entre as chaves entre dropbear e openssh (eles compartilham o mesmo ip, mas usam uma chave diferente), você pode querer colocar seu cliente em ~/.ssh/config alguma coisa assim:

Host myserver_luks_unlock
     User root
     Hostname <myserver>
     # The next line is useful to avoid ssh conflict with IP
     HostKeyAlias <myserver>_luks_unlock
     Port 22
     PreferredAuthentications publickey
     IdentityFile ~/.ssh/id_rsa

Em seguida, basta conectar usando:

ssh myserver_luks_unlock

e assim que você receber um prompt, digite conforme sugerido pelo texto do busybox:

cryptroot-unlock

Aproveite!

    
por 21.12.2017 / 01:53
1

Apenas mais alguns detalhes.

Primeiro, se o seu cliente ssh ainda não tem um par de chaves privada / pública, você precisa gerar com ssh-keygen , como mostrado aqui .

Segundo, eu especificaria que você precisa:

add your client's public key (most of the time ~/.ssh/id_rsa.pub) in the file /etc/dropbear-initramfs/authorized_keys on the server

Veja como. No cliente:

c_user@client:~$ scp .ssh/id_rsa.pub s_user@server:id_rsa.pub

No servidor:

s_user@server:~$ sudo sh -c "cat id_rsa.pub >> /etc/dropbear-initramfs/authorized_keys"
s_user@server:~$ rm id_rsa.pub

Por último, é muito importante que você se conecte ao servidor como root (mesmo que a conta root esteja desativada).

    
por 16.02.2018 / 19:02