pass — Password Store

If you like this project, consider supporting me on Buy Me a Coffee ☕️


tags:

Context: pass is the standard Unix password manager. It stores passwords as GPG-encrypted files in a simple directory tree (~/.password-store/). Each password lives in a .gpg file whose filename is the entry name. It natively integrates with Git for version control and sync. Extensions add OTP, import, and browser integration. It is lightweight, scriptable, and follows the Unix philosophy. / pass — стандартный Unix менеджер паролей. Хранит пароли как GPG-зашифрованные файлы в дереве каталогов. Нативно интегрируется с Git для синхронизации. Лёгкий, скриптуемый, следует философии Unix. Role: Sysadmin / Developer See also: GPG/age Encryption


📚 Table of Contents


1. Installation & Configuration

Install pass

sudo apt install pass                         # Debian/Ubuntu
sudo dnf install pass                         # RHEL/Fedora
sudo pacman -S pass                           # Arch Linux
brew install pass                             # macOS

[!IMPORTANT] pass requires a GPG key. Generate one first with gpg --gen-key if you don't have one. pass требует GPG ключ. Сначала создайте его с помощью gpg --gen-key.

Initialize Store

pass init <GPG_KEY_ID>                        # Initialize with GPG key / Инициализировать с GPG ключом
pass init <EMAIL>                             # Initialize with email / Инициализировать с email

Multiple Users

pass init <KEY1> <KEY2> <KEY3>                # Multi-user store / Хранилище для нескольких пользователей
pass init -p team/ <TEAM_KEY_ID>              # Initialize subdirectory / Инициализировать поддиректорию

Directory Structure

Path Description (EN / RU)
~/.password-store/ Password store / Хранилище паролей
~/.password-store/.gpg-id GPG key ID / ID GPG ключа
~/.password-store/.git/ Git repository / Git репозиторий

2. Core Management

Insert Passwords

pass insert site.com/user                     # Add entry (prompt) / Добавить запись (запрос пароля)
pass insert -m site.com/user                  # Multiline entry / Многострочная запись
pass insert -e site.com/user                  # Insert from editor / Вставить из редактора
echo "<PASSWORD>" | pass insert -e site.com/user  # Insert from stdin / Вставить из stdin

Generate Passwords

pass generate site.com/user 20                # Generate 20-char password / Пароль 20 символов
pass generate site.com/user                   # Generate default length / Длина по умолчанию
pass generate -n site.com/user 16             # No symbols / Без символов
pass generate -c site.com/user 32             # Copy to clipboard / Скопировать в буфер

Show Passwords

pass site.com/user                            # Show password / Показать пароль
pass show site.com/user                       # Same as above / То же что выше
pass -c site.com/user                         # Copy to clipboard / Скопировать в буфер
pass -c2 site.com/user                        # Copy 2nd line (OTP) / Скопировать 2-ю строку (OTP)

Edit & Remove

pass edit site.com/user                       # Edit entry / Редактировать запись
pass rm site.com/user                         # Remove entry / Удалить запись
pass rm -r site.com                           # Remove directory / Удалить директорию

List Entries

pass                                          # List all entries / Список всех записей
pass ls                                       # Same as above / То же что выше
pass ls site.com                              # List subdirectory / Список поддиректории
pass find github                              # Find entries / Найти записи
pass grep username                            # Search in passwords / Искать в паролях

Move & Copy

pass mv old-site.com new-site.com             # Move entry / Переместить запись
pass cp site.com/user site.com/backup         # Copy entry / Скопировать запись

4. Git Integration

Initialize Git

pass git init                                 # Initialize git repo / Инициализировать git
pass git remote add origin <REPO_URL>         # Add remote / Добавить удалённый репозиторий

Git Operations / Git

pass git push                                 # Push changes / Отправить изменения
pass git pull                                 # Pull changes / Получить изменения
pass git log                                  # Show commit history / История коммитов
pass git status                               # Check status / Проверить статус

[!TIP] pass automatically creates git commits on every change. You only need to push/pull manually. pass автоматически коммитит при каждом изменении. Нужно только push/pull вручную.


5. Extensions

OTP (One-Time Password) / OTP

pass otp insert site.com/user                 # Add OTP secret / Добавить OTP секрет
pass otp site.com/user                        # Generate OTP code / Сгенерировать OTP код
pass otp -c site.com/user                     # Copy OTP to clipboard / Скопировать OTP в буфер

Import

pass import keepass database.kdbx             # Import from KeePass / Импортировать из KeePass
pass import lastpass export.csv               # Import from LastPass / Импортировать из LastPass
pass import 1password export.1pif             # Import from 1Password / Импортировать из 1Password

Common Extensions

Extension Description (EN / RU)
pass-otp One-time passwords / Одноразовые пароли
pass-update Update passwords / Обновление паролей
pass-import Import from other tools / Импорт из других инструментов
pass-tomb Encrypted filesystem / Зашифрованная файловая система

6. Real-World Examples

Team Setup

pass init <TEAM_GPG_KEY>
pass git init
pass git remote add origin [email protected]:passwords.git
pass git push -u origin main

# Team workflow
pass insert servers/production-db
pass git push

# Other team members
pass git pull
pass servers/production-db

Backup & Sync

pass git init
pass git remote add origin [email protected]:<USER>/passwords.git
pass git push

# Sync on new machine
git clone [email protected]:<USER>/passwords.git ~/.password-store
pass

Script Integration

#!/bin/bash
# Get password in script
DB_PASS=$(pass database/production)
mysql -u admin -p"$DB_PASS" production

Dmenu/Rofi Integration

#!/bin/bash
pass -c $(pass ls | tail -n +2 | dmenu -p "Password:")

Browser Integration

# Install passff (Firefox) or browserpass (Chrome)
# Store with URL
pass insert -m github.com/username
# password
# url: https://github.com
# username: myuser

Basic Workflow

# Initialize
pass init <EMAIL>

# Add passwords
pass insert email/gmail
pass insert social/github
pass generate web/aws 32

# Use passwords
pass -c email/gmail              # Copy to clipboard / Скопировать в буфер
pass social/github               # Show password / Показать пароль

Multiline Entries

# Add entry with metadata
pass insert -m aws/production

# Format:
# password123
# username: admin
# url: https://console.aws.amazon.com
# region: us-east-1

# Access
pass aws/production              # Show all / Показать всё
pass -c aws/production           # Copy password / Скопировать пароль
pass -c2 aws/production          # Copy username / Скопировать имя пользователя

OTP Integration

# Add OTP secret
pass otp insert github/user
# Enter otpauth://totp/...

# Generate codes
pass otp github/user             # Show OTP code / Показать OTP код
pass otp -c github/user          # Copy OTP code / Скопировать OTP код

7. Best Practices



On this page

linux pass (Password Store) Sysadmin Cheatsheet 📚 Table of Contents 1. Installation &amp; Configuration Install pass Initialize Store Multiple Users Directory Structure 2. Core Management Insert Passwords Generate Passwords Show Passwords Edit &amp; Remove 3. Organization &amp; Search List Entries Search Move &amp; Copy 4. Git Integration Initialize Git Git Operations / Git 5. Extensions OTP (One-Time Password) / OTP Import Common Extensions 6. Real-World Examples Team Setup Backup &amp; Sync Script Integration Dmenu/Rofi Integration Browser Integration Basic Workflow Multiline Entries OTP Integration 7. Best Practices 8. Documentation Links