rpass is a pass inspired GPG-based secrets manager with asymmetric and symmetric encryption support.
Warning
|
|
|
|---|---|
|
|
- Cross-platform
- Asymmetric/Symmetric encryption
- Entry anonymization
- Clipboard support
- Git integration
- Random password/passphrase generation
- Manage multiple stores
It just writes and reads data to and from gpg's stdin and stdout through a pipe. This way, the contents of a secret aren't logged (not even by auditd).
Dependencies
rpass has the following runtime dependencies:
git clone https://github.com/achianumba/rpass.git
cd rpass
cargo build --release
sudo mv target/release/rpass /usr/local/bincargo install rpassNote
All operations run against the store at $HOME/.rstore or %USERPROFILE%/.rstore
by default.
To override this behaviour, set the DEFAULT_RPASS_STORE environment
to a different location in your shell profile/rc files.
Create a store
Create a store of symmetrically encrypted secrets:
rpass initCreate a store of asymmetrically encrypted secrets:
rpass init -k A6C4C64CCC8E8D4A278660B0A78A721FDBC087D9Create a store and manage its history through revision control
rpass init -gk A6C4C64CCC8E8D4A278660B0A78A721FDBC087D9Create a store in Documents/store by explicitly setting target store path.
rpass init -k A6C4C64CCC8E8D4A278660B0A78A721FDBC087D9 Documents/storeInsert a secret
Insert a username and a password for bob@example.com:
rpass insert example/bob@example.comInsert a secret containing whatever field name you want:
rpass insert -c some-service/username@some-service.comEcho each characters to the screen as it's enter by the user while inserting a secret:
rpass insert -e example/bob@example.comInsert a secret into the store at Documents/store:
rpass insert example/bob@example.com Documents/storeGenerate and optionally insert secrets
Generate a 32-character password (default):
rpass generate -pGenerate a 15-character password:
rpass generate -pl 15Generate a 6-word passphrase:
rpass generate -PGenerate a 10-word passphrase:
rpass generate -Pl 10Generate and insert a password for whois@home.local:
rpass generate -p whois@home.localList human-friendly secret names and fields
List the fields in a secret:
rpass list whois@home.localList the secrets in a group:
rpass list exampleShow the fields and values of a secret
Print the value of the password field to the console:
rpass show whois@home.local -f passwordPrint a JSON object containing the field names and values of the password and username to the console:
rpass show whois@home.local -f password usernamePrint a JSON object containing all field names and their values to the console:
rpass show whois@home.localEdit an existing secret
Rename the username field:
rpass edit whois@home.local -f usernameChange the username field's value:
rpass edit whois@home.local -v usernameAdd an api-token field to an existing secret:
rpass edit whois@home.local -n api-tokenDelete a secret
Delete a secret named throwaway123
rpass remove throwaway123Perfom Git operations against a store
For example, view a summary of the store's history by running:
rpass git log --onelineCopy a secret
Copy a secret named whois@home.local to whois@localhost:
rpass copy whois@home.local whois@localhostMove a secret
Move a secret named whois@localhost to local:
rpass move whois@localhost localRoadmap / Planned Features
The following are on the roadmap but not yet implemented:
grep: Search for strings in secretsfind: Search for strings in secret pathnamesexport: Export secret, group, or store to JSON or to an archive with the same file tree a recipient.import: Import secrets.serve: Serve secrets over a REST API.