1 个不稳定版本
0.0.1 | 2021年6月1日 |
---|
#35 在 #secure-password
5KB
56 行
🔑 ky
简单 & 安全的密码管理器
实验性:该项目仍在积极开发中,可能会在任何时候引入破坏性更改。此外,我并非密码学专家,如果您对密码学有所了解,我将非常乐意接收您的反馈。
🚀 安装
使用 cargo
(Linux/macOS/Windows)
- 参阅 #5
使用 yay
或 pamac
(Arch Linux)
# Using `yay`
yay -S ky
# Using `pamac`
pamac build ky
使用发布版本二进制文件(Linux/macOS/Windows)
查看 发布页面 获取针对 ky
的预构建二进制文件,适用于不同的操作系统。
🤞 使用
全局选项/标志
选项 | 环境变量 | 描述 |
---|---|---|
--vault-path |
KY_VAULT_DIR |
备份/导出目录的路径 |
--backup-path |
KY_BACKUP_DIR |
保险库目录的路径 |
--git-repo |
KY_GIT_REPO |
用作备份存储的 Git 仓库 |
--git-branch |
KY_GIT_BRANCH |
Git 仓库的默认分支 |
标志 | 描述 |
---|---|
--version |
打印版本 |
--help |
打印帮助文档 |
基础
- 获取帮助
如果您想深入了解每个命令、选项和标志,请使用 ky help
或 ky --help
。子命令也有 help
命令和 --help
标志可用。
- 初始化保险库(必需)
所有内容都存储在一个小的 lmdb 数据库中。因此,在保存密码之前需要初始化保险库。要初始化保险库,请运行 ky init
。运行此命令后,您将提示输入主密码,请确保输入一个强大且易记的密码,因为这将需要在后续的每个操作中使用。
ky init
# help
ky init --help
- 添加条目
因此,您想创建/添加密码,只需运行 ky add
并提供一个作为唯一标识符的密钥。之后,您将需要输入更多详细信息,例如用户名、网站、过期日期、备注,目前这些都完全是可选的。在收到所有详细信息后,它们将与主密码一起加密并保存到保险库中。
请记住,密码将自动生成并与其他详细信息一起加密。
ky add <key>
# help
ky add --help
- 显示条目
嗯...您已经添加了一个条目。现在您想查看它。您可以通过运行 ky show
并带有密钥来完成此操作。如果密钥有效,则与该密钥关联的数据将被解密并打印到标准输出。
默认情况下,密码不会解密并显示为隐藏。您需要传递 --clear
标志来以纯文本形式显示密码。
您还可以通过添加 --qr-code
标志将密码以二维码格式打印。
ky show <key> # password will be hidden
ky show <key> --clear # now password will shown
ky show <key> --qr-code --mute # only print qr-code
# help
ky show --help
- 编辑条目
哦哦!犯了一些错误或想要更新详细信息。不用担心,只需用密钥运行 ky edit
并按照添加条目时类似的提示进行操作。
默认情况下,密码不会更改。但,如果您想重新生成密码,只需添加 --password
标志,那么密码将在最后被重新生成。遗憾的是,您不能手动更新或编辑密码。
ky edit <key> # just edit the details
ky edit <key> # edit details and also regenerate password
# help
ky edit --help
- 列出所有条目
只需运行 ky list
以列出保存在保险库中的所有条目。这将仅显示密钥而不会接触与相应密钥关联的详细信息。
ky list
# help
ky list --help
- 重命名密钥
出于某种原因,您想更改密钥或您犯了一些错误并想纠正它。运行 ky move
并提供旧密钥和新密钥。您的数据将使用旧密钥解密,并使用新密钥与主密码一起重新加密,然后保存在保险库中。
ky move <old_key> <new_key>
# help
ky move --help
- 删除条目
如果您不再需要保存的密码,则运行 ky remove
并提供密钥以从保险库中删除条目。此操作是不可逆的。
ky remove <key>
# help
ky remove --help
备份/恢复
- 备份保险库
有时您可能想要备份整个保险库,也许是为了在不同的机器上设置保险库。您可以使用 ky backup
并可选地提供路径,这将整个保险库和其他所需文件压缩,并在稍后点时间点创建一个备份文件以进行恢复。
请注意,保险库数据完全未受影响,即哈希和加密。因此,当您恢复备份保险库时,主密码和其他密码等所有数据都将保持不变。
ky backup # backup vault in the default backup path
ky backup -p <path> # backup in provided path
# help
ky backup --help
- 恢复保险库
备份完成后,您需要恢复该备份。运行 ky restore
以恢复保险库备份,您还可以提供存储备份的自定义路径。一切都将恢复,即哈希和加密,就像备份之前没有改变一样。
ky restore # restore from default path
ky restore -p <path> # restore from the provided path
# help
ky restore --help
- 导出保险库
创建您保险库的解密导出也是可能的,并且非常简单。只需运行 ky export
并可选地提供导出路径,现在您将有一个包含所有数据(解密)的 csv
文件。
请注意,所有数据都是明文,任何有权访问导出文件的人都可以读取您的密码。
ky export # export in the default path
ky export -p <path> # export in provided path
# help
ky export --help
- 导入保险库
您可以导入导出的数据或任何具有特定格式的 csv
文件。在导入时,您将被要求输入主密码,所有数据将使用主密码加密,并在加密后保存在保险库中。
ky import # import from the default path
ky import -p <path> # import from the provided path
# help
ky import --help
Git
ky
支持使用 git
作为跟踪和备份你的保险库的方式,使用 git 仓库。这对于备份和恢复密码保险库非常有用,尤其是如果你经常使用多台机器。尽管它不能替代 git
,但它依赖于 git。
使用此功能时,需要考虑以下几点
1. Git has to be installed on your machine
2. Repo name is retrieved from either `KY_GIT_REPO` env variable or `--git-repo` option.
3. Similarly, branch name is retrieved from either `KY_GIT_BRANCH` env variable or `--git-branch` option.
Git 命令位于 ky git
子命令下。让我们看看这些命令
# help
ky git --help
- 初始化
就像 git init
,你可以运行 ky git init
来初始化一个 git 仓库,这将初始化并创建第一个提交。可选地,你还可以在第一个提交后推送。
ky git init # init and make first commit
ky git init -p # init, commit, and push
# help
ky git init --help
- 备份
使用 git 进行备份就像推送你的更改一样,在底层它使用 git {add,commit,push}
。运行 ky git backup
来提交并将你的数据库更改推送到仓库。
ky git backup # commit and push
ky git backup -n # don't commit, only push
# help
ky git backup --help
- 恢复
你还可以使用 git 恢复保险库,在底层它使用 git clone
。运行 ky git restore
来克隆并从仓库恢复保险库。
ky git restore
# help
ky git restore --help
其他
- 随机密码
你还可以生成一个随机且加密强度高的密码。运行 ky gen
来生成密码。 ky add
也使用相同的底层函数来生成随机密码。
默认情况下,密码长度为 20
,但你可以通过传递 --length
选项来更改它。
ky gen # generate 20 char password
ky gen -l 25 # generate 25 char password
ky gen -l 25 --qr-code # generate and also print a qr-code
# help
ky gen --help
- 删除保险库
不要使用此功能。这只是为了方便,如果你想要永久删除你的保险库。
ky nuke
ky nuke --all # delete vault and backups
- Shell 完成功能
你可以为以下列出的不同 shell 生成完成功能。
# For bash
ky completions bash
# For zsh
ky completions zsh
# For fish
ky completions fish
# For Elvish
ky completions elvish
# Windows Powershell
ky completions pwsh
🔧 构建
ky
是用 Rust 编写的,因此你需要安装最新的 Rust 工具链来编译它。访问 rustup.rs 下载工具链。
要构建 ky
- 设置
git clone https://github.com/numToStr/ky
cd ky
- 运行
# same as `ky help`
cargo run -- help
# same as `ky init`
cargo run -- init
- 构建
# debug build
cargo build
# release build
cargo build --release
🚗 路线图
- ky-reinit
- ky-session
- ky-purge
💐 致谢
依赖关系
~26MB
~536K SLoC