1 个不稳定版本
0.7.0 | 2023年7月10日 |
---|
#10 in #crypto-api
在 zerostash 中使用
97KB
2.5K SLoC
Zerostash
Zerostash 是一个具有版本控制的去重加密文件存储。
它旨在提高速度并确保所有与文件相关的元数据的安全,包括存储数据的准确大小。
在 M1 MacBook Air 上,Zerostash 可以达到大约 1GB/s 的速度。
用例
- 云或外部硬盘上的增量备份
- 加密并存储整个工作区,以实现计算机之间的快速同步
- 加密 Git
入门指南
使用以下方法之一安装 0s
命令后,您就可以开始备份了
0s commit /path/to/repository $(pwd)
就是这样!无需配置。
您将被要求输入用户名和密码来创建一个储藏库,您需要在后续调用时输入这些信息。
如果您想更高级,您可以在提交中留下注释,就像您使用 Git 一样。
0s commit -m 'My first backup!' /path/to/repository $(pwd)
只有在运行之间存在更改时才会创建提交以节省空间并提高速度。
然后您可以使用 checkout
子命令和输入您的凭据来恢复备份
0s checkout /path/to/repository files_to_restore/*
有关更多详细信息,请运行
0s --help
远程备份
您可以使用以下语法将备份对象发送到兼容 S3 的远程位置
0s commit s3://accesskey:secretkey@region#server.com/bucket /
例如,如果您的文件在 AWS 上,位于 us-east-1
区域,您可以使用以下方式使用存储桶
0s commit s3://us-east-1#/backups
从 URL 中省略访问密钥和秘密密钥参数将从环境中读取它们
export AWS_ACCESS_KEY_ID=xxxx
export AWS_SECRET_ACCESS_KEY=xxxx
配置
包含示例和文档的配置文件可以在此存储库中找到:此处。
将其放置在 ~/.config/zerostash/config.toml
或您的 $XDG_CONFIG_HOME/zerostash
目录中。
使用配置文件是可选的,但可以使管理储藏库更容易,并且一些强大的后端配置目前尚未在 CLI 上公开。
一个示例配置如下所示
[mystash]
key = { source = "ask"}
backend = { type = "fs", path = "/archive" }
要在备份中使用您新定义的 mystash
储藏库,只需使用它代替存储库的路径即可。
0s commit mystash /path/to/movies
安装
Zerostash 在 Linux、macOS 和 Windows 上运行,您可以下载 预构建的二进制文件!
如果您正在寻找包管理器集成,请查看以下内容。
在macOS上的安装
您可以使用一个Homebrew tap!
brew install symmetree-labs/homebrew-tap/zerostash
在NixOS上的安装
实际上,这是一个nix flake!您可以在基于flake的配置中包含zerostash
包,或者直接这样运行
nix run github:symmetree-labs/zerostash
注意:由于一个已知问题,nix/macOS目前不受支持。请帮助我们找到解决方案!
使用cargo安装
假设您的系统已安装cargo
,您可以使用它从crates.io安装zerostash。
cargo install zerostash
使用预构建的二进制文件
您可以从GitHub Releases页面下载一个静态Linux二进制文件。
将其放置在您的$PATH
中,然后运行
0s --help
从源码构建
您也可以使用常规的Rust咒语来构建自己的二进制文件。使用rustup
来运行cargo
或使用您的包管理器,然后继续
cargo build --release
威胁模型
Zerostash将以下内容视为威胁模型的一部分
- 保护数据机密性、完整性和真实性
- 数据的确切大小不应为人所知
- 个人用户数据不应在共享存储中可追踪
- 一旦数据被共享,它就不再安全。
- 应能够从存储中删除数据
- 仅访问密钥和原始数据不足以完全泄露数据
设计
有关加密设计的更多详细信息,请参阅底层文档(在Infinitree库中)。
安全通知
这是一个未经审查的安全软件。请自行承担风险。
许可
在GPLv3下分发。
依赖关系
~25–37MB
~666K SLoC