розблокування кореневих файлів за допомогою ssh входу в initramfs
Ви можете розблокувати ваші кореневі файли під час завантаження з віддаленого пристрою, використовуючи ssh для входу в систему завантаження під час роботи з встановленими програмами initramfs.
Налаштування
Щоб віддалене розблокування працювало, перед створенням initramfs необхідно встановити такі пакети: dropbear busybox
У файлі /etc/initramfs-tools/initramfs.confмістяться параметри конфігурації, що використовуються при побудові initramfs. Він повинен містити BUSYBOX=y
(це встановлено за замовчуванням при встановленні пакета DROPBEAR=nзайнятої скриньки ), щоб він був встановлений у програмі initramfs, і не повинен містити
, що б вимкнуло встановлення dropbear до initramfs. Якщо встановлено значення DROPBEAR=y, Drobebe буде встановлений у будь-якому випадку; якщо він
DROPBEARвзагалі не встановлений, то dropbear буде встановлений лише у випадку наявної установки криптовалюти.
Хост-ключі, які використовуються для initramfs, є dropbear_dss_host_keyі
dropbear_rsa_host_keyобидва розташовані в /etc/initramfs-tools/etc/dropbear/. Якщо вони не існують при складанні initramfs, вони будуть створені автоматично. Далі наведені команди для їх створення вручну:
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
Оскільки initramfs не буде зашифровано, передбачається аутентифікація publickey. Ключ (и), використовувані для цього, будуть взяті з
/etc/initramfs-tools/root/.ssh/authorized_keys. Якщо цього файлу не існує при складанні initramfs, він буде створений і
/etc/initramfs-tools/root/.ssh/id_rsa.pubдоданий до нього. Якщо останнього файлу також не існує, він буде генерований автоматично - ви знайдете відповідний приватний ключ, який згодом вам потрібно буде увійти до initramfs під /etc/initramfs-tools/root/.ssh/id_rsa
(або id_rsa.dropbearу випадку, якщо він вам потрібен у форматі dropbear). Далі наведені команди для виконання відповідних кроків вручну:
Щоб створити ключ (у форматі dropbear):
dropbearkey -t rsa -f /etc/initramfs-tools/root/.ssh/id_rsa.dropbear
Щоб перетворити ключ з формату dropbear у формат opensh:
/usr/lib/dropbear/dropbearconvert dropbear openssh \
/etc/initramfs-tools/root/.ssh/id_rsa.dropbear \
/etc/initramfs-tools/root/.ssh/id_rsa
Щоб витягнути відкритий ключ:
dropbearkey -y -f /etc/initramfs-tools/root/.ssh/id_rsa.dropbear | \
grep "^ssh-rsa " > /etc/initramfs-tools/root/.ssh/id_rsa.pub
Щоб додати відкритий ключ до файлу санкціонованих ключів:
cat /etc/initramfs-tools/root/.ssh/id_rsa.pub >> /etc/initramfs-tools/root/.ssh/authorized_keys
У разі , якщо ви хочете , щоб деякі інтерфейси , щоб налаштувати з допомогою DHCP, встановивши
DEVICE=в /etc/initramfs-tools/initramfs.confповинен бути досить. Інітрами також повинні відповідати ip=параметру ядра. Якщо ви використовуєте grub, ви, можливо, захочете встановити його в /boot/grub/menu.lstрядку ' # kopt=' або в додатку до конкретних kernelрядків. Параметр ip=ядра задокументований у Documentation/nfsroot.txtдереві джерела ядра.
Випуски
Не забудьте запустити, update-initramfsколи ви змінили конфігурацію, щоб зробити її ефективною!
Збір достатньої кількості ентропії для демона ssh часом здається проблемою. Запуск демона ssh може затриматись, поки не буде знайдено достатньо ентропії. Це не блокує процес запуску, тому, коли ви знаходитесь за консоллю, вам не доведеться чекати завершення запуску sshd.
Процедура розблокування
Щоб розблокувати з віддаленого пристрою, ви можете зробити щось подібне:
ssh -o "UserKnownHostsFile=~/.ssh/known_hosts.initramfs" \
-i "~/id_rsa.initramfs" root@initramfshost.example.com \
"echo -ne \"secret\" >/lib/cryptsetup/passfifo"
Цей приклад передбачає, що у вас є додатковий known_hostsфайл " ~/.ssh/known_hosts.initramfs", який містить ключ хоста системи криптовалюти, що у вас є файл, " ~/id_rsa.initramfs" який містить дозволений ключ для системи криптовалют, що ім'я системи криптовалюти є " initramfshost.example.com", і що криптовалютна парольна фраза є " secret"
- < debian@x.ray.net>, ср., 30 вересня 2009 р
zless /usr/share/doc/cryptsetup/README.remote.gz