Доступ к зашифрованной домашней директории в Ubuntu

1. Установка необходимых программ и подключение диска.

Сначала установим программы для работы с зашифрованными директориями:

    sudo apt-get install ecryptfs-utils

Затем подключим диск с зашифрованной домашней директорией к другому компьютеру, например, через USB переходник.  Создадим новую директорию и примонтируем в неё раздел с  домашней директорией:

    mkdir /media/newdisk;

    mount /dev/sdb2 /media/newdisk

Если у вас настроено автомонтирование USB устройств, то путь к разделу с файлами может иметь вид, похожий на /media/disk-1 или /media/f4dc6dc1-52a1-488e в зависимости от настроек.

Также создадим директорию, куда мы будем монтировать зашифрованные файлы:

    mkdir /media/olddisk

Чтобы получить доступ к зашифрованным файлам на другом компьютере, вам понадобится знать «mount passphrase» — пароль монтирования зашифрованной домашней директории, который выдаётся сразу после установки системы и должен быть у вас записан. Также его можно узнать подключив обратно в старую систему диск и выполнив команду:

    ecrypt-unwrap-passphrase

Если пароль «mount passphrase» у вас есть, можете переходить к разделу 3. Если же вы забыли его записать, то этот пароль можно восстановить при помощи пароля, который вы использовали для входа в систему, так называемый «login password».

2. Восстановление пароля «mount passphrase».

Чтобы восстановить  «mount passphrase» введите с консоли:

    ecryptfs-unwrap-passphrase /media/newdisk/home/.ecryptfs/your_username/.ecryptfs/wrapped-passphrase
    Passphrase: тут введите ваш «login password»
    913705d92e3ab77e1afe6ca9e86063df

Последняя строка, это и есть ваш пароль «mount passphrase». Запишите его или скопируйте в файл, он вам понадобится дальше.

3. Монтирование зашифрованной домашней директории.

Нам понадобится специальная сигнатура, которая будет использоваться для дешифрации имён файлов. Чтобы её создать, введите:

    sudo ecryptfs-add-passphrase --fnek
    [sudo] password for username: ваш «sudo password» в текущей системе
    Passphrase: «mount passphrase» полученный выше
    Inserted auth tok with sig [a1bf310167c695ff] into the user session keyring
    Inserted auth tok with sig [6f7a931eeb9b3e4c] into the user session keyring

Сигнатура которая нам нужна и которую мы будем вводить ниже, находится во вторых квадратных скобках: 6f7a931eeb9b3e4c

Теперь у нас есть все необходимые данные и мы может монтировать зашифрованную домашнюю директорию:

    sudo mount -t ecryptfs /media/newdisk/home/.ecryptfs/your_username/.Private/ /media/olddisk/
    Passphrase: «mount passphrase»
    Select cipher:
    1) aes: blocksize = 16; min keysize = 16; max keysize = 32 (not loaded)
    2) blowfish: blocksize = 16; min keysize = 16; max keysize = 56 (not loaded)
    3) des3_ede: blocksize = 8; min keysize = 24; max keysize = 24 (not loaded)
    4) twofish: blocksize = 16; min keysize = 16; max keysize = 32 (not loaded)
    5) cast6: blocksize = 16; min keysize = 16; max keysize = 32 (not loaded)
    6) cast5: blocksize = 8; min keysize = 5; max keysize = 16 (not loaded)
    Selection [aes]:  aes
    Select key bytes:
    1) 16
    2) 32
    3) 24
    Selection [16]: 16
    Enable plaintext passthrough (y/n) [n]: n
    Enable filename encryption (y/n) [n]: y
    Filename Encryption Key (FNEK) Signature [a1bf310167c695ff]:6f7a931eeb9b3e4c
    Attempting to mount with the following options:
    ecryptfs_unlink_sigs
    ecryptfs_fnek_sig=6f7a931eeb9b3e4c
    ecryptfs_key_bytes=16
    ecryptfs_cipher=aes
    ecryptfs_sig=a1bf310167c695ff
    Mounted eCryptfs

Проверяем, что всё в порядке и можем приступать к работе с файлами:

    ls /media/olddisk