Назад | Перейти на главную страницу

Заставьте cryptsetup работать без ввода пароля

Я использовал 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, так что вам не нужно делать это самостоятельно?