pass — Password Store
If you like this project, consider supporting me on Buy Me a Coffee ☕️
pass (Password Store) Sysadmin Cheatsheet
Context:
passis the standard Unix password manager. It stores passwords as GPG-encrypted files in a simple directory tree (~/.password-store/). Each password lives in a.gpgfile 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 / Содержание
- Installation & Configuration
- Core Management
- Organization & Search
- Git Integration
- Extensions
- Real-World Examples
- Best Practices
- Documentation Links
1. Installation & Configuration
Install pass / Установка pass
sudo apt install pass # Debian/Ubuntu
sudo dnf install pass # RHEL/Fedora
sudo pacman -S pass # Arch Linux
brew install pass # macOS
[!IMPORTANT]
passrequires a GPG key. Generate one first withgpg --gen-keyif 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 / Удалить директорию
3. Organization & Search
List Entries / Список записей
pass # List all entries / Список всех записей
pass ls # Same as above / То же что выше
pass ls site.com # List subdirectory / Список поддиректории
Search / Поиск
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 / Инициализировать 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]
passautomatically 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 / Интеграция с Dmenu/Rofi
#!/bin/bash
pass -c $(pass ls | tail -n +2 | dmenu -p "Password:")
Browser Integration / Интеграция с браузером
# Install passff (Firefox) or browserpass (Chrome)
# Store with URL / Сохранить с 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 / Интеграция OTP
# Add OTP secret / Добавить OTP секрет
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
- Use meaningful directory structure / Используйте осмысленную структуру директорий
- Store metadata with passwords / Храните метаданные с паролями
- Use git for backup and sync / Используйте git для резервного копирования
- Generate strong passwords (32+ chars) / Генерируйте сильные пароли (32+ символов)
- Backup GPG keys securely / Резервно копируйте GPG ключи безопасно
- Use OTP extension for 2FA / Используйте OTP расширение для 2FA
8. Documentation Links
- pass Official Website
- pass Man Page
- pass-otp Extension
- pass-import Extension
- passff (Firefox Extension)
- browserpass (Chrome Extension)
- gopass (Enhanced pass)
- QtPass (GUI)