Я виявив, що працює sudo bash
і потім працює ecryptfs-recover-private
як root (а не через sudo). Не впевнений, чому це має бути інакше.
Редагувати:
TL; DR:
# ecryptfs-unwrap-passphrase /mnt/crypt/.ecryptfs/user/.ecryptfs/wrapped-passphrase - | ecryptfs-add-passphrase --fnek -
< Type your login password here >
Inserted auth tok with sig [aaaaaaaaaaaaaaaa] into the user session keyring
Inserted auth tok with sig [bbbbbbbbbbbbbbbb] into the user session keyring
Ви не побачите підказку, і ви повинні ввести свій пароль для входу, наосліп, у вказану вище команду.
Замініть нижній aaaaaaaaaaaaaaaa
і bbbbbbbbbbbbbbbb
нижній шестигранний підписи між дужками з виводу вгорі, щоб:
# mount -i -t ecryptfs -o ecryptfs_sig=aaaaaaaaaaaaaaaa,ecryptfs_fnek_sig=bbbbbbbbbbbbbbbb,ecryptfs_cipher=aes,ecryptfs_key_bytes=16 /mnt/crypt/.ecryptfs/user/.Private /mnt/plain
Прелімінарії
Виявляється, просто працює, оскільки root не працював надійно для мене; іноді так, іноді - ні. В основному, ecryptfs здається баггі та непривітним для користувачів, часто плутаючи паролі для входу та монтуючи паролі. Після спуску глибокої темної кролячої нори у мене є кілька порад, які повинні допомогти. Ці нотатки призначені для Ubuntu 17.10, ecryptfs-utils 111-0, і ви повинні стати root перед запуском. Я припускаю, що ви хочете встановити свій домашній каталог з /mnt/crypt
(який уже має бути змонтований) до /mnt/plain
, і вам слід замінити user
ім'я користувача.
Почніть легко
Перше, що потрібно спробувати:
# ecryptfs-recover-private /mnt/crypt/.ecryptfs/user/.Private
Якщо це працює, ну, вам пощастить. Якщо ні, то може дати повідомлення mount
про помилку від о no such file or directory
. Це вкрай вводить в оману: те, що це насправді означає, що ваша парольна фраза не відповідає або відсутня.
Отримати підписи
Ось важлива частина: нам потрібно переконатися, що ecryptfs справді намагається виконати правильні паролі (фрази) для монтажу. Пропускні фрази повинні бути завантажені в ядро Linux, перш ніж ecryptfs зможуть встановити вашу файлову систему. ecryptfs запитує ядро для них за своїм підписом. Підпис - це 16-байтне шестигранне значення (і не є криптографічно чутливим). Ви можете знайти підписи пароля фрази, які очікує ecryptfs:
# cat /mnt/crypt/.ecryptfs/user/.ecryptfs/Private.sig
aaaaaaaaaaaaaaaa
bbbbbbbbbbbbbbbb
Пам'ятайте про це. Мета - отримати парольні фрази з цими підписами, завантаженими в ядро, а потім сказати шифрам, щоб ними користуватися. Перший підпис ( aaaaaaaaaaaaaaaa
) призначений для даних, а другий ( bbbbbbbbbbbbbbbb
) - ключ шифрування FileName (FNEK).
Отримайте парольну фразу для монтування
Ця команда попросить вас ввести пароль для входу (з оманливим запитом) та вивести свою парольну фразу для монтажу :
# ecryptfs-unwrap-passphrase /mnt/crypt/.ecryptfs/user/.ecryptfs/wrapped-passphrase
Скопіюйте це, але будьте уважні !! , оскільки це надзвичайно криптографічно чутливі ключі від царства.
Спробуйте інтерактивне кріплення
Наступне, що слід спробувати:
# mount -t ecryptfs /mnt/crypt/.ecryptfs/user/.Private /mnt/plain
Найважливішим тут є те, що mount
потрібна ваша (суперчутлива) парольна фраза, яку ми щойно скопіювали (а не ваш пароль для входу).
Це задасть вам деякі запитання, і ви можете прийняти типові параметри, крім того, щоб сказати "так" Enable filename encryption
. Він може надати вам попередження і попросити кешувати підписи; ви можете сказати "так" обом, але перевірте, чи правильно ви знайшли пароль.
Ви побачите варіанти, які mount
вирішили спробувати для вас:
Attempting to mount with the following options:
ecryptfs_unlink_sigs
ecryptfs_fnek_sig=bbbbbbbbbbbbbbbb
ecryptfs_key_bytes=16
ecryptfs_cipher=aes
ecryptfs_sig=aaaaaaaaaaaaaaaa
Mounted eCryptfs
Якщо підписи неправильні (не відповідають тому, що ви отримали Private.sig
), кріплення не працюватиме.
... але він дуже недобросовісно повідомить, що це зробив. Вам потрібно буде зробити ls /mnt/plain
і котити файл, щоб переконатися. У цей момент ви також можете заглянути /var/log/syslog
і переконатися, що ecryptfs шукає ті самі підписи, що і ми.
Тут чітко є дві серйозні проблеми з криптовалютами, і ми повинні вирішити їх.
Завантажте ключі в ядро
Якщо інтерактивне кріплення не допомогло, нам доведеться самостійно завантажити ключі в ядро і вручну вказати їх у параметрах кріплення.
# ecryptfs-add-passphrase --fnek
І вставити скопійований зверху ваш (надчутливий) прохідний пароль . Це має вивести:
Inserted auth tok with sig [aaaaaaaaaaaaaaaa] into the user session keyring
Inserted auth tok with sig [bbbbbbbbbbbbbbbb] into the user session keyring
Монтувати вручну
Тепер паролі завантажуються в ядро, і нам просто потрібно сказати mount, щоб використовувати їх:
# umount /mnt/plain
# mount -i -t ecryptfs -o ecryptfs_sig=aaaaaaaaaaaaaaaa,ecryptfs_fnek_sig=bbbbbbbbbbbbbbbb,ecryptfs_cipher=aes,ecryptfs_key_bytes=16 /mnt/crypt/.ecryptfs/user/.Private /mnt/plain
Ви помітите, що параметри схожі на те, що надруковано інтерактивне кріплення, за винятком того, що ми вручну повідомляємо ecryptfs, що відбувається.
Сподіваємось, це працює. Якщо ні, ви можете перевірити, що ключі завантажуються в ядро з правильними підписами за допомогою keyctl list @u
, які повинні роздрукувати принаймні два підписи, які ви очікуєте.
ecryptfs-recover-private
виводиться помилка mount (2). спробуйте запуститиsudo ecryptfs-manager
, натисніть 4 (вихід), а потім знову запустіть оригіналecryptfs-recover-private
. має працювати зараз