giriiş
Senaryo kurulum resmi Hetzner Rescue System çeşitli Linux dağıtımlarını kurmanın kolay bir yolunu sunuyor.
Bu eğitimde installimage kullanılarak şifrelenmiş bir Ubuntu 22.04 sisteminin nasıl kurulacağı ve ayrı bir bölümde saklanan initramfs'de SSH (dropbear) aracılığıyla uzaktan kilit açma özelliğinin nasıl ekleneceği gösterilmektedir. /bot gösterir.
Ön koşullar
- Hetzner hesabı
- Sunucu kurtarılmak üzere başlatıldı.
- RSA, ECDSA veya ED25519 SSH genel anahtarı
- Hetzner Cloud'da hiçbir özel ağ bağlı değil
Adım 1 – SSH genel anahtarını oluşturun veya kopyalayın
Şifrelenmiş sistemin kilidini uzaktan açmak için bir SSH anahtarına ihtiyacınız var. Bu anahtarı daha sonra önyüklenen sisteme giriş yapmak için kullanacaksınız. Ubuntu 22.04'te bulunan Dropbear SSH daemon'ı yalnızca RSA ve ECDSA anahtarlarını destekler. Böyle bir anahtarınız yoksa, bir tane oluşturmanız gerekir. ED25519 veya ECDSA anahtarlarını kullanmanızı öneririz.
Örneğin, ED25519 SSH anahtarını oluşturmak için şunu çalıştırın:
ssh-keygen -t ed25519
Genel anahtarı kurtarma sistemine kopyalayın, örneğin scp kullanarak:
scp ~/.ssh/id_ed25519.pub root@<your-host>:/tmp/authorized_keys
Adım 2 – Installimage yapılandırma dosyasını oluşturun veya kopyalayın
installimage herhangi bir seçenek olmadan çağrıldığında, etkileşimli modda başlar ve bir dağıtım görüntüsü seçildikten sonra bir düzenleyici açar. Düzenleyiciden çıkıldıktan sonra kurulum devam eder ve ilgili yapılandırma, kurulu sistemde /installimage.conf olarak kaydedilir. Bu eğitimde, doğrudan kurulum için böyle bir yapılandırma dosyası kullanacağız.
Aşağıdaki içerikle bir /tmp/setup.conf dosyası oluşturun veya kurtarma sistemindeki sunucuya kopyalayın.
Not: Secret'ı güvenli bir parola ile değiştirin ve sürücü adını ve bölümlendirmeyi gerektiği gibi ayarlayın.
CRYPTPASSWORD secret
DRIVE1 /dev/sda
BOOTLOADER grub
HOSTNAME host.example.com
PART /boot/efi esp 256M
PART /boot ext4 1G
PART / ext4 all crypt
IMAGE /root/images/Ubuntu-2204-jammy-amd64-base.tar.gz
SSHKEYS_URL /tmp/authorized_keysBu yapılandırma, Ubuntu'yu uzaktan kilit açma için gereken ayrı bir şifrelenmemiş /boot ile bir sürücüye (/dev/sda) kurar.
Adım 3 – Kurulum sonrası betiği oluşturun veya kopyalayın
Şifrelenmiş bölümün kilidini uzaktan açmak için, Dropbear SSH sunucusunu kurmamız ve şifrelenmemiş /boot bölümünde depolanan initramfs'ye eklememiz gerekiyor. Bu, dhclient'ın ağ yapılandırmasına dahil edilmesini de sağlar, ancak ek bir şey gerektirmez. Hetzner Cloud desteğini etkinleştirmek için, RFC3442 rotalarını destekleyen bir kanca eklememiz gerekiyor.
Bu ek adımları gerçekleştirmek için installimage için bir kurulum sonrası betiğe ihtiyacımız var.
Kurtarma sisteminde aşağıdaki içerikle /tmp/post-install.sh adında bir dosya oluşturun:
#!/bin/bash
add_rfc3442_hook() {
cat << EOF > /etc/initramfs-tools/hooks/add-rfc3442-dhclient-hook
#!/bin/sh
PREREQ=""
prereqs()
{
echo "\$PREREQ"
}
case \$1 in
prereqs)
prereqs
exit 0
;;
esac
if [ ! -x /sbin/dhclient ]; then
exit 0
fi
. /usr/share/initramfs-tools/scripts/functions
. /usr/share/initramfs-tools/hook-functions
mkdir -p \$DESTDIR/etc/dhcp/dhclient-exit-hooks.d/
cp -a /etc/dhcp/dhclient-exit-hooks.d/rfc3442-classless-routes \$DESTDIR/etc/dhcp/dhclient-exit-hooks.d/
EOF
chmod +x /etc/initramfs-tools/hooks/add-rfc3442-dhclient-hook
}
remove_unwanted_netplan_config() {
cat << EOF > /etc/initramfs-tools/scripts/init-bottom/remove_unwanted_netplan_config
#!/bin/sh
if [ -d "/run/netplan" ]; then
interface=\$(ls /run/netplan/ | cut -d'.' -f1)
if [ \${interface:+x} ]; then
rm -f /run/netplan/"\${interface}".yaml
fi
fi
EOF
chmod +x /etc/initramfs-tools/scripts/init-bottom/remove_unwanted_netplan_config
}
# Install rfc3442 hook
add_rfc3442_hook
# Adding an initramfs-tools script to remove /run/netplan/{interface}.yaml,
# because it is creating unwanted routes
remove_unwanted_netplan_config
# Update system
apt-get update >/dev/null
apt-get -y install cryptsetup-initramfs dropbear-initramfs
# Copy SSH keys for dropbear and change the port
cp /root/.ssh/authorized_keys /etc/dropbear/initramfs/
sed -ie 's/#DROPBEAR_OPTIONS=/DROPBEAR_OPTIONS="-I 600 -j -k -p 2222 -s"/' /etc/dropbear/initramfs/dropbear.conf
dpkg-reconfigure dropbear-initramfs
update-initramfs -uÖnemli: Kurulumdan sonra betiği çalıştırılabilir hale getirin:
chmod +x /tmp/post-install.sh
Adım 4 – Kurulumu başlatın
Kuruluma başlamadan önce aşağıdaki dosyaların içeriklerini tekrar kontrol edin:
- /tmp/authorized_keys – Genel SSH anahtarınız (RSA, ECDSA veya ED25519)
- /tmp/setup.conf – installimage yapılandırması
- /tmp/post-install.sh – çalıştırılabilir bir dosyadır ve kurulum sonrası betiği içerir.
Artık aşağıdaki komutla kurulumu başlatmaya hazırsınız:
installimage -a -c /tmp/setup.conf -x /tmp/post-install.sh
Kurulumun tamamlanmasını bekleyin ve debug.txt dosyasında herhangi bir hata olup olmadığını kontrol edin.
Adım 5 – Yüklü sistemi başlatın
Kurulum tamamlandıktan ve tüm hatalar giderildikten sonra, sunucuyu yeniden başlatmak ve yeni kurulan sistemi başlatmak için bir yeniden başlatma çalıştırabilirsiniz. Bir bulut örneğinde bağlı bir KVM'niz veya uzak bir konsolunuz varsa, önyükleme sürecini izleyebilirsiniz.
Bir süre sonra sunucu ping'e yanıt verecektir. Şimdi SSH üzerinden Dropbear'a giriş yapın ve şifrelenmiş bölüm(ler)in kilidini açmak için cryptroot-unlock komutunu çalıştırın.
- ED25519 veya ECDSA anahtarıyla
ssh -p 2222 root@<your-host>
- RSA anahtarıyla
RSA durumunda bu anahtarın kabul edildiğini açıkça belirtmemiz gerekir.
ssh -o "PubkeyAcceptedKeyTypes +ssh-rsa" -p 2222 root@<your-host> -i ~/.ssh/id_rsa
Örnek:
$ ssh -o "PubkeyAcceptedKeyTypes +ssh-rsa" -p 2222 root@<your-host> -i ~/.ssh/id_rsa
BusyBox v1.30.1 (Ubuntu 1:1.30.1-7ubuntu3) built-in shell (ash)
Enter 'help' for a list of built-in commands.
# cryptroot-unlock
Please unlock disk luks-80e097ad-c0ab-47ce-9302-02dd316dc45c:Şifre doğruysa önyükleme devam edecek ve geçici SSH oturumundan otomatik olarak bağlantınız kesilecektir.
Birkaç saniye sonra yeni sisteminize giriş yapabilirsiniz.
Dikkat
Bu kılavuz yalnızca Ubuntu 22.04 için yazılmıştır. Diğer dağıtımlarda çalışmayabilir.









