initramfs'ta ssh ile rootfs kilidini açma
Initramfs takılıyken çalışırken önyükleme sisteminde oturum açmak için ssh kullanarak, açılışta rootfs'ınızın kilidini uzaktan açabilirsiniz.
Kurmak
Uzaktan kilit açma çalışması için initramfs oluşturmadan önce aşağıdaki paketlerin yüklenmesi gerekir: dropbear
busybox
Dosya /etc/initramfs-tools/initramfs.conf
initramfs oluşturulurken kullanılan yapılandırma seçeneklerini tutar. Bu içermelidir BUSYBOX=y
Initramfs içine monte busybox olması (busybox paketi yüklendiğinde bu varsayılan olarak ayarlanır) ve içermemelidir
DROPBEAR=n
Initramfs için dropbear yüklenmesini devre dışı sıkça dile getiriliyor. Eğer ayarlanırsa DROPBEAR=y
, dropbear her durumda kurulur; eğer
DROPBEAR
hiç ayarlanmazsa, o dropbear yalnızca varolan cryptroot kurulum durumunda kurulacaktır.
Initramfs için kullanılan konak anahtarları dropbear_dss_host_key
ve
dropbear_rsa_host_key
hem yer, /etc/initramfs-tools/etc/dropbear/
. İnitramfs derlendiğinde yoklarsa, otomatik olarak oluşturulurlar. Bunları manuel olarak oluşturma komutları aşağıdadır:
dropbearkey -t dss -f /etc/initramfs-tools/etc/dropbear/dropbear_dss_host_key
dropbearkey -t rsa -f /etc/initramfs-tools/etc/dropbear/dropbear_rsa_host_key
İnitramfs şifreli olmayacağından, publickey kimlik doğrulaması kabul edilir. Bunun için kullanılan anahtar (lar) alınacaktır
/etc/initramfs-tools/root/.ssh/authorized_keys
. İnitramfs derlendiğinde bu dosya yoksa, oluşturulur ve
/etc/initramfs-tools/root/.ssh/id_rsa.pub
buna eklenir. İkinci dosya da yoksa, otomatik olarak oluşturulur - daha sonra altında initramfs'e giriş yapmanız gereken eşleşen özel anahtarı bulacaksınız /etc/initramfs-tools/root/.ssh/id_rsa
(ya da id_rsa.dropbear
dropbear biçiminde ihtiyacınız varsa). İlgili adımları manuel olarak yapmak için gereken komutlar aşağıdadır:
Bir anahtar oluşturmak için (dropbear biçiminde):
dropbearkey -t rsa -f /etc/initramfs-tools/root/.ssh/id_rsa.dropbear
Anahtarı dropbear formatından openssh formatına dönüştürmek için:
/usr/lib/dropbear/dropbearconvert dropbear openssh \
/etc/initramfs-tools/root/.ssh/id_rsa.dropbear \
/etc/initramfs-tools/root/.ssh/id_rsa
Genel anahtarı çıkarmak için:
dropbearkey -y -f /etc/initramfs-tools/root/.ssh/id_rsa.dropbear | \
grep "^ssh-rsa " > /etc/initramfs-tools/root/.ssh/id_rsa.pub
Genel anahtarı yetkilinin_keys dosyasına eklemek için:
cat /etc/initramfs-tools/root/.ssh/id_rsa.pub >> /etc/initramfs-tools/root/.ssh/authorized_keys
Eğer bazı arayüz ayarı, dhcp kullanarak yapılandırılmasını istiyoruz
DEVICE=
içinde /etc/initramfs-tools/initramfs.conf
yeterli olmalıdır. İnitramfs ayrıca ip=
çekirdek parametresini de onurlandırmalıdır . Grub kullanıyorsanız, muhtemelen /boot/grub/menu.lst
' # kopt=
' satırına ya da belirli ' kernel
' satırlarına eklenmesini isteyebilirsiniz . ip=
Çekirdek parametresi belgelenmiştir Documentation/nfsroot.txt
çekirdek kaynak ağacında.
Sorunlar
update-initramfs
Etkin hale getirmek için konfigürasyonu değiştirdiğinizde çalıştırmayı unutmayın !
Ssh daemon için yeterli entropi toplamak bazen bir sorun gibi görünmektedir. Ssh arka plan programının başlatılması, yeterli entropi alınana kadar ertelenebilir. Bu, başlatma işlemi için engelleyici değildir, bu yüzden konsoldayken sshd'nin başlangıcını tamamlamasını beklemeniz gerekmez.
Açma prosedürü
Uzaktan kumandadan kilidini açmak için şöyle bir şey yapabilirsiniz:
ssh -o "UserKnownHostsFile=~/.ssh/known_hosts.initramfs" \
-i "~/id_rsa.initramfs" root@initramfshost.example.com \
"echo -ne \"secret\" >/lib/cryptsetup/passfifo"
Bu örnek, fazladan olduğunu varsayar known_hosts
dosyayı " ~/.ssh/known_hosts.initramfs
" Eğer bir dosya var olduğunu, cryptroot sistemin konak-anahtarı tutuyor " ~/id_rsa.initramfs
cryptroot sistem için yetkili anahtar tutan" cryptroot sistemin adı "olduğunu, initramfshost.example.com
" ve bu şifreli parola " secret
" dır
- < debian@x.ray.net
>, Çar, 30 Eyl 2009
zless /usr/share/doc/cryptsetup/README.remote.gz