#cryptsetup #luks #encryption #command-line-tool #cli

bin+lib peroxide-cryptsetup

使用双因素认证方法(例如 Yubikeys)管理 LUKS 加密卷的命令行工具

4 个版本

0.3.2 2022 年 8 月 28 日
0.3.1 2022 年 8 月 28 日
0.3.0 2022 年 8 月 28 日
0.1.0 2016 年 11 月 29 日

#1710 in 命令行工具

GPL-3.0 许可证

105KB
2.5K SLoC

pipeline status crates.io Status

peroxide-cryptsetup

  • (peroxide) 一种具有强氧化性质的粘稠液体。

peroxide-cryptsetup - Linux 上管理 cryptsetup 磁盘的 cli 工具

警告:alpha 版本

描述

peroxs 是一个用于管理 Linux 上 cryptsetup 磁盘的命令行工具。更确切地说,它帮助您为设备管理密钥注册,并在操作密钥丢失时添加备份密钥。目前它仅支持 LUKS 设备。

用法

当前文档略少,但以下内容可以帮助您入门

  • cargo安装 peroxide-cryptsetup

或者,克隆此仓库并从源代码构建

  • cargo构建
  • 现在 target/debug/peroxs 将被简单地称为 peroxs

注册第一个磁盘

注册是指为现有或新的 LUKS 磁盘添加新密钥槽的过程。

选择一个块设备(磁盘)。我们将使用 /dev/your-disk 作为示例。

  • cd/secure/key/storage/location
  • peroxs init backup(创建数据库)
  • peroxs enroll keyfile secret.key/dev/your-disk--name=awesome--iteration-ms=1000

以上假设 /dev/your-disk 已经使用 cryptsetup luksFormat 格式化。如果需要格式化全新的设备

  • peroxs enroll keyfile secret.key new--cipher aes-xts-plain--hash sha256--key-bits256 /dev/your-disk--name=awesome--iteration-ms=1000

有关 --cipher--hash--key-bits 的值更多信息,请参阅 man cryptsetup

打开已注册的设备

  • cd/location/of/peroxs/db
  • peroxs open /dev/your-disk(替代方案,可以使用磁盘的 uuid)

注册磁盘的现有密钥文件或密码

  • peroxs register keyfile secret.key/dev/your-disk--name=awesome

列出数据库中的磁盘及其状态

  • peroxs list--all

完整用法

(从 clap 生成的用法复制)

USAGE:
    peroxs [OPTIONS] <SUBCOMMAND>

OPTIONS:
    -d, --database <DATABASE>
            The database to use[default: peroxs-db.json]
            [aliases: db]

    -h, --help
            Print help information

    -V, --version
            Print version information

SUBCOMMANDS:
    enroll
            Enroll a new or existing LUKS disk(s) in the database (adding a new keyslot)
    help
            Print this message or the help of the given subcommand(s)
    init
            Initialize a new peroxide-db database
    list
            List disks enrolled in a database
    open
            Open enrolled LUKS disk(s)
    register
            Register an existing entry in the database (without adding a new keyslot)

enroll

USAGE:
    peroxs enroll [OPTIONS] <SUBCOMMAND>

OPTIONS:
    -d, --database <DATABASE>
            The database to use[default: peroxs-db.json]
            [aliases: db]

    -h, --help
            Print help information

SUBCOMMANDS:
    help
            Print this message or the help of the given subcommand(s)
    keyfile
            Enroll using a keyfile
    passphrase
            Enroll using a passphrase
    yubikey
            Enroll using a Yubikey token

init

USAGE:
    peroxs init [OPTIONS] <DB_TYPE>

ARGS:
    <DB_TYPE>
            Database type to enroll[possible values: operation, backup]

OPTIONS:
    -d, --database <DATABASE>
            The database to use[default: peroxs-db.json]
            [aliases: db]

    -h, --help
            Print help information

list

USAGE:
    peroxs list [OPTIONS]

OPTIONS:
        --all
            List all devices in database, regardless of whether they can be found to be attached to
            the system currently

    -d, --database <DATABASE>
            The database to use[default: peroxs-db.json]
            [aliases: db]

    -h, --help
            Print help information

open

USAGE:
    peroxs open [OPTIONS] [DEVICE_OR_UUID]...

ARGS:
    <DEVICE_OR_UUID>...
            The path(s) to the device or the LUKS UUID(s) of the device

OPTIONS:
    -d, --database <DATABASE>
            The database to use[default: peroxs-db.json]
            [aliases: db]

    -h, --help
            Print help information

    -n, --name <NAME>
            Override name specified in database (if any) when activating the device

register

USAGE:
    peroxs register [OPTIONS] <SUBCOMMAND>

OPTIONS:
    -d, --database <DATABASE>
            The database to use[default: peroxs-db.json]
            [aliases: db]

    -h, --help
            Print help information

SUBCOMMANDS:
    help
            Print this message or the help of the given subcommand(s)
    keyfile
            Register an existing keyfile
    passphrase
            Register an existing passphrase

开发

您需要安装以下软件包

  • libcryptsetup-devel
  • libsodium-devel
  • ykpers-devel

(您的发行版的软件包名称可能会有所不同)

贡献

peroxide-cryptsetup 是其贡献者的作品,是一个在 GPLv3 或更高版本下授权的免费软件项目。

如果您想贡献,请遵循 C4 流程。

依赖关系

~8–22MB
~233K SLoC