带 SSH 密钥系统的加密 USB

带 SSH 密钥系统的加密 USB

我正在考虑拥有一个加密的 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

之后就可以继续分区了。

相关内容