-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
李昌
committed
Feb 6, 2024
1 parent
98f73a7
commit eed1824
Showing
1 changed file
with
29 additions
and
29 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,17 +1,14 @@ | ||
# pm (password manager) - 简单实用的密码管理工具 | ||
|
||
pm 是一个简单实用的密码管理工具,它可以帮助你生成、管理密码,可选的将密码同步到远端存储中,以便你可以在多个主机间同步你的密码. | ||
|
||
## Build | ||
|
||
```bash | ||
make | ||
``` | ||
|
||
## Install | ||
pm有一些依赖,请自行安装: | ||
``` | ||
sudo apt-get install git xclip | ||
``` | ||
|
||
如果你安装了go,可以直接使用go install安装: | ||
```bash | ||
go install github.com/yangchnet/pm@latest | ||
|
@@ -21,45 +18,48 @@ go install github.com/yangchnet/pm@latest | |
|
||
## Usage | ||
|
||
1. 在任意的git-server上创建一个私有仓库(github, gitlab, gitee等),并复制仓库的ssh地址:例如:`git@github.com/yangchnet/pass.git` | ||
![pass](https://raw.githubusercontent.com/lich-Img/blogImg/master/img/pass.gif) | ||
|
||
2. 在本地初始化pm,并指定git的用户名,邮箱,仓库地址,以及私钥的路径 | ||
1. 初始化pm | ||
```bash | ||
pm init --git-email [email protected] --git-username yangchnet --git-url [email protected]:yangchnet/pass.git --private-key-path /path/to/private/key | ||
pm init | ||
``` | ||
如果还没有私钥,可不传`--private-key-path`参数,pm会自动创建一个新的私钥 | ||
|
||
3. 将刚才创建的私钥对应的公钥添加到git的ssh-key中,以便pm可以自动push和pull(如果之前配置过ssh密钥,可参考第二步直接使用) | ||
|
||
![20240204190855](https://raw.githubusercontent.com/lich-Img/blogImg/master/img/20240204190855.png) | ||
![20240204191010](https://raw.githubusercontent.com/lich-Img/blogImg/master/img/20240204191010.png) | ||
可选参数: | ||
- `--remote` `-r`. 指定使用的远端存储, 可选项:`git`、`empty`,默认empty。当使用`git`时,需要输入git配置信息;当使用`empty`时,pm将不会进行远端存储。 | ||
- `--store` `-s`. 指定使用的本地存储, 可选项:`sqlite`、`file`,默认file。当使用`sqlite`时,pm将使用sqlite数据库存储密码;当使用`file`时,pm将使用文本文件进行密码存储。 | ||
|
||
4. 拉取远程仓库的数据 | ||
2. 录入一个新的密码 | ||
```bash | ||
pm pull | ||
pm new passname # passname为你的密码名称, 必须唯一 | ||
``` | ||
|
||
5. 新建一个密码 | ||
```bash | ||
pm new --name github --account yangchnet | ||
``` | ||
可选参数: | ||
- `--passwd` `-p`. 指定密码,如果不指定,pm将会生成一个密码。 | ||
- `--note` `-n`. 指定备注信息。 | ||
- `--url` `-u`. 指定url信息。 | ||
- `--account` `-a`. 指定账号信息。 | ||
|
||
可选参数:`--note`, `--url` | ||
当未设置主密码或主密码已失效时,pm将会提示你输入主密码。主密码强制每24小时必须重新输入一次。 | ||
|
||
pm会自动为你生成一个密码,并将密码复制到你的剪贴板中,密码被保存在sqlite数据库中. | ||
3. 获取密码 | ||
```bash | ||
pm get passname | ||
``` | ||
|
||
6. push到远程仓库保存 | ||
4. 删除密码 | ||
```bash | ||
pm push | ||
pm del passname | ||
``` | ||
|
||
## TODO | ||
[ ] 数据导入 | ||
|
||
[ ] windows环境测试 | ||
5. push & pull | ||
```bash | ||
pm push # 将本地密码同步到远端 | ||
|
||
[ ] 支持自定义密码参数(长度,包含字符等) | ||
pm pull # 将远端密码同步到本地 | ||
``` | ||
|
||
[ ] OSS作为remote | ||
正常情况下,pm会在你对密码进行了改动后自动将数据同步到远端,并在你get密码前自动同步远端密码到本地。 | ||
|
||
[ ] ... | ||
Enjoy it! |