В соответствии с комментарием @ user43791 , попробуйте отключить буферизацию в конвейере , например:
stdbuf -o0 netcat localhost 9090 | grep sender
Существует разница между двумя командами, как описано вman cryptsetup
:
--key-file, -d name
Read the passphrase from file.If the name given is "-", then the passphrase will be read from stdin. In this case, reading will not stop at newline characters.
Это означает, что если вы создали файл с помощью echo
, vi
или копирования/вставки, он, скорее всего, будет включать в себя новую строку в конце. если используется как чистый стандартный ввод (без опции --key-file
), его последняя новая строка будет игнорироваться, но при использовании в качестве параметра для --key-file
, даже если это тот же самый стандартный ввод (--key-file=-
), он получит эту новую строку включенная в парольную фразу :, она становится новой парольной фразой, которая недействительна.
Чтобы убедиться в этом:
cat mypass.txt | tr -d '\r\n' | sudo cryptsetup open --type luks --key-file=- /dev/sda1 enc-store
Должно работать как задумано (на тот случай, если я тоже удалю CR ).
Если причина в этом, просто удалите эту новую строку :, например
mv -i mypass.txt mypass.old && tr -d '\r\n' < mypass.old > mypass.txt
Что вам, вероятно, следует сделать в любом случае, так это сгенерировать новую фразу-пароль из чисто случайных чисел, поместить ее в защищенный файл и включить в отдельный слот LUKS.