Debian
apt install git gnupg pass rofi pass-extension-otp zbar-tools
Fedora
dnf install git gnupg pass pass-otp rofi zbar
Arch
pacman -S git gnupg pass pass-otp rofi zbar wl-clipboard
-
You need a GPG key
gpg --list-keys gpg --full-gen-key
-
Backup your GPG key
# backup gpg -o private.gpg --export-options backup --export-secret-keys <gpg_key_fingerprint> # restore gpg --import-options restore --import private.gpg
Note
The trust level may need to be set when restoring the key
-
Initialize password store
pass init <gpg_key_fingerprint> pass git init
-
Manage passwords
pass help
Insert given password
pass insert <pass-name>
Generate standard password
pass generate <pass-name>
Generate password with no symbols and custom length (standard length is 25)
pass generate --no-symbols <pass-name> <pass-length>
Edit a password
pass edit <pass-name>
Remove a password
pass rm <pass-name>
Rename a password
pass mv <old-path> <new-path>
-
Clone this repository
git clone git@github.com:denniskasper/pass cd pass
-
Install
passmenu
scriptsudo cp ./passmenu /usr/bin/
-
Assign hotkey to
passmenu
In GNOME it can be done like this:
- Settings π Keyboard π Keyboard Shortcuts π Custom π Add
- Enter
passmenu
as the "Command" - And set a "Shortcut" (e.g.
Ctrl
+Alt
+Shift
+P
)
-
Fix menu not focusing
If you start the menu and it won't be focused, you need to disable Wayland and switch to X11. But don't worry it's very easy:
- Edit
/etc/gdm/custom.conf
- Change
#WaylandEnable=false
toWaylandEnable=false
- Reboot your computer
- If you have a laptop and your touch gestures are broken afterwards, just install X11 Gestures extension and touchegg
- Edit
I recommend syncing your passwords through an encrypted Git repository. You can read more about the reasoning in my blog post.
-
Install git-remote-gcrypt
- Debian:
apt install git-remote-gcrypt
- Fedora:
dnf install git-remote-gcrypt
- Arch:
pacman -S git-remote-gcrypt
- Debian:
-
Add encrypted remote
pass git remote add <remote_name> gcrypt::<remote_url> pass git config remote.<remote_name>.gcrypt-participants "<key_fingerprint>" pass git config remote.<remote_name>.gcrypt-signingkey "<key_fingerprint>"
-
Push changes
pass git push origin main
-
Pull changes
git clone gcrypt::<remote_url> git pull origin main
-
Restore private GPG key
gpg --import-options restore --import private.gpg
Note
The trust level may need to be set when restoring the key
-
Git clone the private repository
git clone gcrypt::<private_remote_url> ~/.password-store