我正在考虑拥有一个加密的 USB 闪存来存储一些密码和此类信息。我希望它被加密,以防万一我丢失它并且有人找到它。
我想知道是否可以像 SSH 那样使用公钥“加密”。我不知道它是否会被称为加密,但其想法是访问 USB 中文件的唯一方法是在计算机中拥有密钥(就像 SSH 中一样)。
如果这是不可能的,用同样的想法加密单个文件就可以了。
答案1
您可以用于gpg
非对称加密。基本上你会执行以下操作(生成 gpg 密钥后):
$ gpg -ea -r [email protected] file.ext
file.ext.asc
这将创建一个在您当前目录中调用的加密文件(-r
指定收件人,在本例中就是您)。要解密,请执行以下操作
$ gpg -d file.ext.asc > file.asc
You need a passphrase to unlock the secret key for user: "Real Name
(Comment) <[email protected]>" 2048-bit ELG-E key, ID 7F72A50F, created
2007-12-01 (main key ID 9B1386E2)
Enter passphrase:
(来源)。
如果您想在文件系统级别使用它,您可以将其与其他答案结合起来。生成随机密钥:
$ dd if=/dev/urandom of=random-key count=1024
$ gpg -ea -r [email protected] random-key
并使用以下命令创建和解锁您的文件系统
$ gpg -d random-key.asc | cryptsetup luksFormat /dev/sdXY -d -
$ gpg -d random-key.asc | cryptsetup luksOpen /dev/sdXY usbstick -d -
-d
是 的简写--key-file
。免责声明:这些命令未经测试。首先将自己读入 gpg,然后在没有重要数据的情况下尝试此操作!
答案2
您可以使用 cryptsetup 对 USB 驱动器进行 LUKS 加密,并在进行 LUKS 格式化时指定密钥文件。我相信这应该可以解决问题:
cryptsetup luksFormat /dev/sdXY --key-file=/path/to/keyfile
然后你可以使用以下命令打开它:
cryptsetup luksOpen /dev/sdXY usbstick --key-file=/path/to/keyfile
之后就可以继续分区了。