Я использовал cryptsetup для шифрования внешнего жесткого диска.
У меня нет проблем с использованием зашифрованного жесткого диска таким образом:
/sbin/cryptsetup luksOpen /dev/sdc1 backup
// typing password
// mounting the partition
// doing something
// unmounting the partition
/sbin/cryptsetup luksClose /dev/mapper/backup
Но следующим моим требованием было сделать это без ввода пароля.
Затем я создал двоичный файл с хешем моего пароля с помощью этой команды:
hashalot -n 32 ripemd160 > volume_key
а потом:
/sbin/cryptsetup luksOpen -d volume_key /dev/sdc1 backup
но я получаю эту ошибку:
Command failed: No key available with this passphrase.
Есть идеи, ребята?
Если вы приземлитесь здесь, как я искал ответ, это будет примерно так:
Затем я создал двоичный файл с хешем моего пароля с помощью этой команды:
hashalot -n 32 ripemd160 > volume_key
а затем вы должны:
/sbin/crypsetup luksAddKey volume_key
Enter any passphrase: <- enter current passphrase aka: "typing password"
Теперь cryptsetup добавил ваш файл (volume_key) в качестве еще одного ключа к вашему тому. Технически вы можете использовать любой файл для этого ключа. Изображение в формате jpg или любой файл со случайным текстом.
Наконец, теперь вы можете
/sbin/cryptsetup luksOpen -d volume_key /dev/sdc1 backup
cryptsetup будет использовать ключевой файл, если он есть, или запросить вашу парольную фразу, если не сможет найти файл.
Страница руководства cryptsetup предлагает следующее о параметре -d: «Если вы хотите установить новый ключ через файл ключей, вы должны использовать позиционный аргумент для luksFormat или luksAddKey».
Содержимое файла volume_key будет хешировано программой cryptsetup, так что вам не нужно делать это самостоятельно?