When using VeraCrypt (or TrueCrypt for that matter) without a password the /etc/crypttab
file has a special format that is not documented in the crypttab
man page. Namely, the key-file must be set to /dev/null
and passed as one of the options to crypttab.
For instance, assume you want to mount the container ben
with the device at /dev/sdc
and the key file at /var/lib/keys/ben.key
, then the /etc/crypttab
file must have the following entry:
# <target name> <source device> <key file> <options> ben /dev/sdc /dev/null tcrypt-veracrypt,tcrypt-keyfile=/var/lib/keys/ben.key
If the key-file /var/lib/keys/ben.key
is placed in the <key file>
column, then cryptsetup
will counter-intuitively prompt for a password. Similarly, if the <key file>
column is set to none
, then cryptsetup
will fail opening the container believing, again counter-inutiively, that there is no key file for the container. Intuitively, setting /dev/null
in the <key file>
column will make cryptsetup
attempt to read the key from /dev/null
but the tcrypt-keyfile
option will take over and the container will be mounted as expected.