经常可以看到某些企业的服务器上插着一个优盘,用户一般称之为加密狗。不插入这个优盘无法访问某某数据等等。在linux中实现这个功能的软件名为cryptsetup-luks。

    使用方法如下在系统中创建一个新的分区。举例为/dev/sda6,之后通过partprobe刷新新的分区,然后便可对这个未格式化的分区进行加密。命令如下:
cryptsetup luksFormat /dev/sda6

    此时会出现如下警告:
This will overwrite data on /dev/sda6 irrevocably.
Are you sure? (Type uppercase yes): YES
如果确认要输入大写的YES后输入需要给这个磁盘加密的密码举例为111输入两次匹配后成功。
之后我们便可以使用这个加密磁盘了命令如下

cryptsetup luksOpen /dev/sda6 secret 其中secret为加密分区的名称。此时会确认密码,111后。他会自动在/etc/mapper/文件夹中生成一个叫secret的文件。
   

    这时我们便可以对/dev/mapper/secret这个加密分区进行格式化了。
mkfs.ext3 /dev/mapper/secret

    之后我们便可以使用这个加密磁盘了,举例将其挂在到/mnt/secret这个目录中,此时我们便可以将自己的一些文件信息写入其中。

     当重要数据保存完毕后我们可以用命令来关闭隐藏分区达到保密的效果,再此之前需要先将加密分区卸载umount后执行。命令如下:
cryptsetup luksClose secret 此时只需将名称关闭即可。

     但是这样作每次开机手动挂载会很麻烦。如何才能实现开机自动挂在隐藏分区又要保证文件的保密性呢。首先需要编辑隐藏分区挂载文件。

vim /etc/crypttab 在其中写入内容如下

secret /dev/sda6 none 其中第三列是码文件none表示为空。然后编辑

vim /etc/fstab 在其中写入内容如下

/dev/mapper/secret /mnt/secret ext3 defaults 0 0

此时重启即可实现开机自动加载加密程序。而且需要你手动输入密码111。

    但是这样如果服务器每次重启都要给加密盘手动输入密码,所以加密u盘就诞生了。所谓加密优盘就是将优盘中的文件作为加密分区的密码来开机。

首先给优盘挂到一个地方如/mnt/usbkey/并在其中建立个文件名为usbkey.txt。

下面就可以为优盘指定加密文件了
cryptsetup luksAddKey /dev/sda6 /mnt/usbkey/usbkey.txt
Enter any LUKS passphrase: 输入密码111
Verify passphrase: 再次确认密码111
key slot 0 unlocked.
Command successful.

加密文件创建成功。此时这个密码文件是个空文件。完全是靠文件的属性来定义加密的。但是由于加入了优盘所以优盘也必须为开机自动挂载才有意义。不然加密盘无法读取到优盘中的文件会无法挂载。所以将优盘的作为开机启动,写入fstab

/dev/sdb1 /mnt/usbkey ext3 defaults 0 0
下面我们可以将优盘的挂载路径写在/etc/crypttab中
secret /dev/sda6 /mnt/usbkey/usbkey.txt 这样就可以实现开机挂载了。