Автоматически дешифровать диск при запуске? (получение пароля удаленно?) [dублировать]

Недавно я установил Ubuntu 12.10, и для его загрузки требуется парольная фраза (я установил ее с зашифрованной файловой системой).

Нужно ли переустанавливать, чтобы перейти к стандартной незашифрованной файловой системе?

37
задан 19 February 2013 в 14:37

6 ответов

Если Ubuntu запрашивает кодовую фразу шифрования во время загрузки (т. е. на текстовой консоли до отображения экрана входа в систему), это указывает на то, что был использован полный метод шифрования диска. (Существует несколько способов сделать это, но я продолжу общий ответ). Шифрование выполняется дополнительным программным слоем между файловой системой и физическим жестким диском, а не самой файловой системой.

Нет простого метода или инструмента, чтобы отменить это. Имея некоторые знания о том, как работают системы Linux, это можно сделать. Вам нужно будет переместить всю файловую систему (или все файлы) в другой раздел (с достаточным свободным пространством) или внешний жесткий диск. Затем удалите зашифрованный контейнер и заново создайте файловую систему без шифрования. Наконец, убедитесь, что новая файловая система была правильно распознана загрузчиком и mount -a перед перезагрузкой.

Если возможно, лучше избегать этой длительной и подверженной ошибкам процедуры. Просто сделайте новую установку. Для новых пользователей это самый быстрый и безопасный вариант.

PS: Скорее всего, вы можете изменить кодовую фразу шифрования, возможно, на пустую строку. Затем для дешифрования требуется только нажать Enter. Возможно, вы можете пойти дальше и подавить (теперь бесполезно) подсказку фразы. Однако это не отключает шифрование. Данные все равно будут зашифрованы, хотя шифрование будет бесполезным, так как ключ может быть тривиально угадан.

19
ответ дан 18 July 2018 в 02:40

Если Ubuntu запрашивает кодовую фразу шифрования во время загрузки (т. е. на текстовой консоли до отображения экрана входа в систему), это указывает на то, что был использован полный метод шифрования диска. (Существует несколько способов сделать это, но я продолжу общий ответ). Шифрование выполняется дополнительным программным слоем между файловой системой и физическим жестким диском, а не самой файловой системой.

Нет простого метода или инструмента, чтобы отменить это. Имея некоторые знания о том, как работают системы Linux, это можно сделать. Вам нужно будет переместить всю файловую систему (или все файлы) в другой раздел (с достаточным свободным пространством) или внешний жесткий диск. Затем удалите зашифрованный контейнер и заново создайте файловую систему без шифрования. Наконец, убедитесь, что новая файловая система была правильно распознана загрузчиком и mount -a перед перезагрузкой.

Если возможно, лучше избегать этой длительной и подверженной ошибкам процедуры. Просто сделайте новую установку. Для новых пользователей это самый быстрый и безопасный вариант.

PS: Скорее всего, вы можете изменить кодовую фразу шифрования, возможно, на пустую строку. Затем для дешифрования требуется только нажать Enter. Возможно, вы можете пойти дальше и подавить (теперь бесполезно) подсказку фразы. Однако это не отключает шифрование. Данные все равно будут зашифрованы, хотя шифрование будет бесполезным, так как ключ может быть тривиально угадан.

19
ответ дан 24 July 2018 в 17:37

Ниже мое решение, которое сработало. Имейте в виду, что я не специалист по Linux, поэтому это может быть не лучшее решение.

Миграция установки FDE в незашифрованный раздел

ПРИМЕЧАНИЕ: всякий раз, когда я говорю, я имею в виду

/dev/sda1 - boot partition /dev/sda5 - encrypted partition /dev/sda3 - clean non-encrypted EXT4 partition /dev/sda2 - my newly created swap partition

Копирование данных из зашифрованного корня файловая система

Загрузите с живого компакт-диска. Я использовал Ubuntu 13.10 32-битный настольный ISO.

Установите свой раздел:

sudo cryptsetup luksOpen /dev/sda5 crypt1

Скопируйте исходные данные в целевой раздел и сохраните dd PID в переменной pid:

sudo dd if=/dev/ubuntu-vg/root of=/dev/sda3 bs=1M & pid=$!

Это будет обрабатывать каждый второй dd-процесс с помощью сигнала USR1 и состояния результатов dd:

while sudo kill -USR $pid; do sleep 1; done

Альтернатива мониторингу DD

Если вам не нравится выше, а метод ", вы можете использовать часы. Откройте новое окно терминала и получите PID:

pgrep -l '^dd$' | awk '{ print $1 }'

Замените свой идентификатор процесса:

watch kill -USR1 <pid>

Вы должны видеть вывод на вашем dd-терминале каждые 2 секунды.

Настройка новой корневой файловой системы и разделов

Когда все будет готово, вы можете подключить свой незащищенный раздел, чтобы убедиться, что все в порядке:

sudo mount /dev/sda3 /mnt

После этого отключите ваш раздел:

sudo umount /dev/sda3

Разблокировать секцию crypt:

sudo cryptsetup luksClose /dev/sda5

Запустить gparted. Удалите раздел LUKS (как расширенный, так и логический). Измените размер вашего / dev / sda3 и двигайтесь влево. Создайте раздел подкачки.

Примечание. Перемещение вашего / dev / sda3 влево может занять много времени. Для меня это заняло 30 минут на разделение на 120 ГБ и SSD-накопитель. Если у вас есть 500 ГБ + HDD, вы будете готовы на несколько часов ожидания. Возможно, вы захотите создать своп перед вашим разделом вместо того, чтобы перемещать ваш файл /dev/sda3.

Создайте новую своп-файловую систему на своп-разделе:

sudo mkswap /dev/sda2

и сохраните где-нибудь UUID

Получить ваш корневой раздел UUID:

sudo blkid /dev/sda3

Изменить fstab:

sudo nano /etc/fstab

Удалить или прокомментировать строки overlayfs и tmpfs.

Добавить замену строки с помощью blkid результата:

UUID=<uuid_root> / ext4 errors=remount-ro 0 1 UUID=<uuid_swap> none swap sw 0 0

Удалить файл:

rm /etc/crypttab

Обновить ваши initramfs, чтобы избежать ошибок, таких как cryptsetup: evms_activate недоступен: ! d26] sudo -i mount /dev/sda3 /mnt mount -t proc none /mnt/proc mount -o bind /sys /mnt/sys mount -o bind /dev /mnt/dev mount /dev/sda1 /mnt/boot chroot /mnt /bin/bash apt-get remove --purge cryptsetup update-initramfs -u -k all

Заключительные замечания и устранение неполадок

Это сработало для меня, однако есть шанс, что выполнение шагов шаг за шагом может не сработать для вас. Прежде чем я выяснил метод update-initramfs, я несколько раз переустанавливал ядро ​​и изменял grub. Однако это не должно быть для вас. Помните, что приведенные выше инструкции могут удалить ваши данные, поэтому будьте осторожны и сделайте ПРИМЕЧАНИЕ , ПЕРЕД ПРОДОЛЖЕНИЕМ этого.

На всякий случай у вас есть проблемы с ядром (chrooted and / boot mounted): [ ! d31] uname -r sudo apt-get install --reinstall linux-image-3.X.Y-ZZ-generic

Конечно, замените linux-image-3.XY-ZZ с датой ядра от uname.

или GRUB (вне chroot):

sudo add-apt-repository ppa:yannubuntu/boot-repair && sudo apt-get update sudo apt-get install -y boot-repair && (boot-repair &)

Подробнее: https://help.ubuntu.com/community/Boot-Repair

Удачи

18
ответ дан 18 July 2018 в 02:40

В случае, если все в порядке, чтобы сохранить шифрование, но чтобы отключить подсказку фразы, гораздо более простой подход - просто установить тривиальный пароль, например «пароль», а затем сохранить этот тривиальный пароль в initramfs в открытом тексте. Отключите пароль шифрования LUKS.

По существу, добавьте скрипт hook, который, в свою очередь, добавит «keycript» к initramfs. Обычно эти сценарии используются для получения пароля через Bletooth, с USB-накопителя и т. Д., Но в этом случае просто запустите его тривиальный пароль.

8
ответ дан 18 July 2018 в 02:40

Ниже мое решение, которое сработало. Имейте в виду, что я не специалист по Linux, поэтому это может быть не лучшее решение.

Миграция установки FDE в незашифрованный раздел

ПРИМЕЧАНИЕ: всякий раз, когда я говорю, я имею в виду

/dev/sda1 - boot partition /dev/sda5 - encrypted partition /dev/sda3 - clean non-encrypted EXT4 partition /dev/sda2 - my newly created swap partition

Копирование данных из зашифрованного корня файловая система

Загрузите с живого компакт-диска. Я использовал Ubuntu 13.10 32-битный настольный ISO.

Установите свой раздел:

sudo cryptsetup luksOpen /dev/sda5 crypt1

Скопируйте исходные данные в целевой раздел и сохраните dd PID в переменной pid:

sudo dd if=/dev/ubuntu-vg/root of=/dev/sda3 bs=1M & pid=$!

Это будет обрабатывать каждый второй dd-процесс с помощью сигнала USR1 и состояния результатов dd:

while sudo kill -USR $pid; do sleep 1; done

Альтернатива мониторингу DD

Если вам не нравится выше, а метод ", вы можете использовать часы. Откройте новое окно терминала и получите PID:

pgrep -l '^dd$' | awk '{ print $1 }'

Замените свой идентификатор процесса:

watch kill -USR1 <pid>

Вы должны видеть вывод на вашем dd-терминале каждые 2 секунды.

Настройка новой корневой файловой системы и разделов

Когда все будет готово, вы можете подключить свой незащищенный раздел, чтобы убедиться, что все в порядке:

sudo mount /dev/sda3 /mnt

После этого отключите ваш раздел:

sudo umount /dev/sda3

Разблокировать секцию crypt:

sudo cryptsetup luksClose /dev/sda5

Запустить gparted. Удалите раздел LUKS (как расширенный, так и логический). Измените размер вашего / dev / sda3 и двигайтесь влево. Создайте раздел подкачки.

Примечание. Перемещение вашего / dev / sda3 влево может занять много времени. Для меня это заняло 30 минут на разделение на 120 ГБ и SSD-накопитель. Если у вас есть 500 ГБ + HDD, вы будете готовы на несколько часов ожидания. Возможно, вы захотите создать своп перед вашим разделом вместо того, чтобы перемещать ваш файл /dev/sda3.

Создайте новую своп-файловую систему на своп-разделе:

sudo mkswap /dev/sda2

и сохраните где-нибудь UUID

Получить ваш корневой раздел UUID:

sudo blkid /dev/sda3

Изменить fstab:

sudo nano /etc/fstab

Удалить или прокомментировать строки overlayfs и tmpfs.

Добавить замену строки с помощью blkid результата:

UUID=<uuid_root> / ext4 errors=remount-ro 0 1 UUID=<uuid_swap> none swap sw 0 0

Удалить файл:

rm /etc/crypttab

Обновить ваши initramfs, чтобы избежать ошибок, таких как cryptsetup: evms_activate недоступен: ! d26] sudo -i mount /dev/sda3 /mnt mount -t proc none /mnt/proc mount -o bind /sys /mnt/sys mount -o bind /dev /mnt/dev mount /dev/sda1 /mnt/boot chroot /mnt /bin/bash apt-get remove --purge cryptsetup update-initramfs -u -k all

Заключительные замечания и устранение неполадок

Это сработало для меня, однако есть шанс, что выполнение шагов шаг за шагом может не сработать для вас. Прежде чем я выяснил метод update-initramfs, я несколько раз переустанавливал ядро ​​и изменял grub. Однако это не должно быть для вас. Помните, что приведенные выше инструкции могут удалить ваши данные, поэтому будьте осторожны и сделайте ПРИМЕЧАНИЕ , ПЕРЕД ПРОДОЛЖЕНИЕМ этого.

На всякий случай у вас есть проблемы с ядром (chrooted and / boot mounted): [ ! d31] uname -r sudo apt-get install --reinstall linux-image-3.X.Y-ZZ-generic

Конечно, замените linux-image-3.XY-ZZ с датой ядра от uname.

или GRUB (вне chroot):

sudo add-apt-repository ppa:yannubuntu/boot-repair && sudo apt-get update sudo apt-get install -y boot-repair && (boot-repair &)

Подробнее: https://help.ubuntu.com/community/Boot-Repair

Удачи

18
ответ дан 24 July 2018 в 17:37
  • 1
    Я считаю, что вам нужно заменить UUID раздела подкачки на /etc/initramfs-tools/conf.d/resume вручную, и я бы рекомендовал скопировать содержимое файловой системы с помощью cp -a или rsync -a, поскольку это было бы быстрее и безопаснее для SSD. – LiveWireBT 30 January 2014 в 03:38
  • 2
    Спасибо, что сделали мою разработку более удобной для пользователя. Я не делал смены резюме, также испугался с помощью cp или rsync, считал, что dd (необработанная копия с устройства на устройство) - это правильный инструмент для таких задач. Я делал это на VM, но изображение было размещено на SSD. Можете ли вы уточнить: «безопаснее для SSD». пожалуйста? – NeverEndingQueue 31 January 2014 в 03:27
  • 3
    Использование dd копирует весь раздел, даже блоки, которые должны быть пустыми, что вызывает ненужную запись на SSD (а на некоторых это даже наносит вред записи производительности почти всем ячейкам). Несколько лет назад я и некоторые другие также обнаружили, что копирование с помощью dd и активация TRIM (опция удаления EXT4) приведет к тому, что TRIM удалит блоки, которые, по его мнению, пусты, и оставляют вас со сломанной установкой через несколько часов. – LiveWireBT 31 January 2014 в 13:42

В случае, если все в порядке, чтобы сохранить шифрование, но чтобы отключить подсказку фразы, гораздо более простой подход - просто установить тривиальный пароль, например «пароль», а затем сохранить этот тривиальный пароль в initramfs в открытом тексте. Отключите пароль шифрования LUKS.

По существу, добавьте скрипт hook, который, в свою очередь, добавит «keycript» к initramfs. Обычно эти сценарии используются для получения пароля через Bletooth, с USB-накопителя и т. Д., Но в этом случае просто запустите его тривиальный пароль.

8
ответ дан 24 July 2018 в 17:37

Другие вопросы по тегам:

Похожие вопросы: