You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardexpand all lines: README.md
+9-10
Original file line number
Diff line number
Diff line change
@@ -15,20 +15,20 @@ It provides the following in a single binary:
15
15
16
16
pago encrypts passwords with one or more public keys using [age](https://github.com/FiloSottile/age) (pronounced with a hard "g").
17
17
The public keys are called "recipients".
18
-
A private key matching any of the recipient public keys can decrypt the password.
18
+
A private key matching one of the recipient public keys can decrypt the password.
19
19
The private keys are called "identities".
20
20
The file with the identities is encrypted with a password, also using age.
21
21
22
22
pago implements an agent like [ssh-agent](https://en.wikipedia.org/wiki/Ssh-agent) or [gpg-agent](https://www.gnupg.org/documentation/manuals/gnupg/Invoking-GPG_002dAGENT.html).
23
-
The agent caches the identities used to decrypt the passwords.
23
+
The agent caches the identities.
24
24
This mean you don't have to enter the master password again during a session.
25
25
pago starts the agent the first time you enter the master password.
26
26
You can also start and stop the agent manually.
27
27
28
28
The pago password store format is compatible with [passage](https://github.com/FiloSottile/passage).
29
29
It has the following differences:
30
30
31
-
- The pago directory is located in`${XDG_DATA_HOME}/pago/`, while passage uses `~/.passage/`
31
+
- The pago directory is located at`${XDG_DATA_HOME}/pago/`, while passage uses `~/.passage/`
32
32
- passage supports an encrypted or an unencrypted identities file; pago only supports encrypted
33
33
34
34
## Threat model
@@ -40,12 +40,12 @@ An attacker who gets ahold of your pago directory but not the master password sh
40
40
My primary password manager is [KeePassXC](https://github.com/keepassxreboot/keepassxc).
41
41
I use a secondary password manager to access a subset of secrets in cron jobs and scripts and on headless remote systems.
42
42
43
-
For a time, I used [`pass`](https://www.passwordstore.org/) for this.
43
+
I used [`pass`](https://www.passwordstore.org/) for this for a time.
44
44
While I liked the design of `pass` and found it pleasant to use, I didn't like setting up GPG on a new system.
45
45
I went looking for a `pass` replacement based on age
46
46
because I had replaced GPG with age for encrypting files.
47
-
The following is the shortlist of password managers I compiled before I decided to work on pago.
48
-
It includes an explanation for why I didn't adopt them.
47
+
The following is the late-2024 shortlist of password managers I compiled before I decided to work on pago.
48
+
It includes explanations for why I didn't adopt them.
49
49
50
50
First, I needed the identities encrypted at rest and usable without reentering the password.
51
51
This ruled out [passage](https://github.com/FiloSottile/passage), which had no an agent, and [pa](https://github.com/biox/pa), which didn't support encryption for the identities file.
@@ -59,20 +59,19 @@ For more options, see ["Awesome age"](https://github.com/FiloSottile/awesome-age
59
59
## History
60
60
61
61
pago is a heavily modified fork of [pash](https://github.com/dylanaraps/pash) (archived).
62
-
It has been ported from POSIX shell to Tcl to Go.
63
-
In the middle of this, it switched from [GPG](https://gnupg.org/) to age.
62
+
It has been ported from POSIX shell to Tcl to Go and from [GPG](https://gnupg.org/) to age.
64
63
65
64
## Installation
66
65
67
-
You will need Go 1.22 to install pago.
66
+
You will need Go 1.22 or later to install pago.
68
67
Once Go is installed on your system, run the following command:
69
68
70
69
```
71
70
go install github.com/dbohdan/pago@master
72
71
```
73
72
74
73
Shell completion files for Bash and fish are available in [`completions/`](completions/).
75
-
To install completions fish, run `install.fish`.
74
+
To install completions for fish, run `install.fish`.
0 commit comments