розблокування кореневих файлів за допомогою 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