In this tutorial I’ll walk you through the steps of setting up Debian 12 with LUKS full disk encryption on a server you bought from the Hetzner auction. I’m using the recommended method using the “installimage” script (that Hetzner provides) to make things really easy for myself.

Enter the rescue mode

  • Login to the Robot robot.hetzner.com and go to the “Server” page.
  • Click on “Server” > “Key Management” > “New Key”, add your public key and click “Add Key”.
  • Click on “Server” and click your server and choose the “Rescue” tab.
  • Select your “Public key” and click “Activate Rescue System”.
  • Now click on the “Reset” tab and choose “Execute an automatic hardware reset” and click “Send”.
  • Wait for 60 seconds (duration depends on the hardware) for the server to reboot.
  • Use an SSH client to connect with username “root” to the IP address of your server.

Installation instructions

Add your public keys to the rescue image by using an editor and pasting the public keys:

nano /root/.ssh/authorized_keys

Copy the public keys to a location that can be used by the installer:

cp /root/.ssh/authorized_keys /tmp/authorized_keys

Create a “post-install.sh” file:

nano /tmp/post-install.sh

And fill it with the following content:

#!/bin/bash
cp /root/.ssh/authorized_keys /etc/dropbear/initramfs/
apt-get update >/dev/null
apt-get -y install cryptsetup-initramfs dropbear-initramfs

Make the file executable:

chmod +x /tmp/post-install.sh

Now run the installer interactive with the “post-install.sh” script:

installimage -x /tmp/post-install.sh

Now an editor opens and you need to add (use your own passphrase):

CRYPTPASSWORD yoursecretpassphrase

Also adjust the HOSTNAME to match your hostname (and set the reverse in the robot):

HOSTNAME yourhostname.yourdomain.com

Adjust the line:

PART / ext4 all

And add the word “crypt” so that it becomes:

PART / ext4 all crypt

Now add a “SSHKEYS_URL” line to specify where the public keys are located:

SSHKEYS_URL /tmp/authorized_keys

Press “Esc” and save the file on exit. The installer begins. Wait until it shows:

INSTALLATION COMPLETE

Now you can reboot the server from the command line using the “reboot” command:

reboot 

After waiting for 60 seconds for the server to reboot you can connect again to dropbear:

ssh root@yourhostname.yourdomain.com

You may see a warning and have to remove the signature. This may happen more often as the key of dropbear does not match the key of the rescue image nor the key of your normal SSH server:

ssh-keygen -f "/home/maurits/.ssh/known_hosts" -R "yourhostname.yourdomain.com"

Now you get to the BusyBox prompt and you need to type “cryptroot-unlock” to unlock the disk:

cryptroot-unlock

Now enter the passphrase you’ve chosen earlier. You should get disconnected after a successful passphrase and the system should boot up normally.

You installation is complete and your system is up-and-running.