Password Store is a command line utility for managing your passwords. The passwords are stored in an encrypted file which makes use of
gpg. It also allows you to use
git to track password changes.
Setup is pretty easy. It only requires
gpg which can be installed via
brew. Optionally, you can install
git if you want to track changes in your storage.
$ brew install gpg pass
GPG (skip if you already have a key)
You would need to set up your gpg key if you don’t have one.
$ gpg --gen-key
You will then be presented with this prompt:
$ gpg --gen-key gpg (GnuPG) 1.4.19; Copyright (C) 2015 Free Software Foundation, Inc. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Please select what kind of key you want: (1) RSA and RSA (default) (2) DSA and Elgamal (3) DSA (sign only) (4) RSA (sign only) Your selection?
Select the default (RSA and RSA). The other steps will depend on how you want your key to be set up.
$ pass init
This will create a directory in your
pass help provides a list of all available commands so I’ll probably just list here the basics.
pass simply lists all your stored passwords.
/ similar to subfolders. An example is this:
$ pass Password Store ├── foo │ └── bar.gpg │ └── baz.gpg └── bar └── foo.gpg
This can be accomplished by invoking the commands:
$ pass insert foo/bar Enter password for foo/bar: Retype password for foo/bar: $ pass insert foo/baz Enter password for foo/baz: Retype password for foo/baz: $ pass insert bar/foo Enter password for bar/foo: Retype password for bar/foo:
Editing is similar to inserting.
$ pass edit foo/bar
You will then be asked to enter your password for your key. This will open up your default editor where you can modify your password.
This is similar to editing in which
pass would open up a prompt which asks your password for your key.
To display your password, invoke this command:
$ pass foo/bar
To copy your password in the clipboard, just add the
pass removes it from the clipboard after 45 seconds.
A quick rundown on using
$ pass git remote add <alias> <remote> $ pass git push
Everytime you insert, modify, or delete a password,
pass issues a commit.