Pass - Unix Password Manager

Posted on Apr 5, 2023

Home: https://www.passwordstore.org/

Pass is a very simple password manager for Unix(like) systems. In fact all pass does is encrypt your passwords inside a gpg encrypted file and organizes them in a meaningful way. One thing to note is that pass’s built in interface is strictly for command-line use only, though some third party GUI’s are out there.

Installation

To install pass use your systems package manger. See below for some examples.

## Arch
sudo pacman -S pass
## Void
sudo xbps-install -S pass
## Debian/Ubuntu
sudo apt install pass
## macOS
brew install pass

Configuration

Configuring pass is really simple, to set up the only prerequisite is that you have to have GnuPG already set up.

Configuration - Setting up GnuPG

If you do not have GnuPG set up on your system then use the below command to get a basic setup, just follow the prompt using the defaults is more than enough for most people. This will generate a GPG key to use to lock and unlock your pass files.

gpg --full-gen-key

Configuration - Initializing Pass

Pass requires you to initialize it before you can start using it. To do so run the below command, be sure to switch out “<gpg-id_or_email>” with your GPG key id or the email used to create the key.

pass init <gpg-id_or_email>

Configuration - Git Initialize for Syncing (Optional)

Pass does provide a way to sync passwords between different devices. Unlike other password managers, pass uses the power of Git to sync across multiple devices. This actually works really well for most cases but there are some things to consider that I will note at the end of this post. For now I will show you how to set this up for Git if you want to use it.

Follow the bellow commands.

# Initialize the password store as a git repository
pass git init 
# Add the remote Git repo you want to sync with. This will vary great between person so reference your Git repo instructions.
pass git remote add origin user@example.com:/pass-repo-directory
# Sends your local pass changes to the remote git repo.
pass git push -u --all
# Pulls your remote git repos pass changes and syncs them with your local changes.
pass git pull

Usage

Using pass is simple just use the commands listed below.

# To add a password
pass insert <your_password>
pass add <your_password>
# To show a password
pass <your_password>
# To copy a password to the clipboard
pass -c <your_password>
# To remove a password
pass rm <your_password>
# To change your password
pass edit <your_password>
# To search for a password
pass find <your_password>

End

OK pass is a really cool password manager but it does have some draw backs. First draw back is that pass is a local password manger meaning that out of box it will not sync with other devices you have that also use pass. I explained above one method that pass supports to fulfill the syncing issue but there are many other ways to accomplish this. Since pass stores everything as files you can easily move those files between devices pretty easily. One way to do this is using Syncthing or other such syncing applications. I definitely encourage you try it out and see if pass is for you.