Password-store

Материал из ALT Linux Wiki

Название пакета

password-store

Назначение

Программа password-store (она же pass) является консольным менеджером паролей, ориентированным на простоту, надежность и переносимость. В своей работе она не использует базы данных, вместо этого все пароли хранятся в локальном каталоге (по умолчанию ~/.passwor-store) в виде иерархии обычных каталогов и файлов. Названием файла может являться название сайта, логин или какое-то другое произвольное имя. Сами пароли расположены внутри файлов, которые зашифрованы с помощью gpg (при необходимости файлы могут содержать дополнительные строки). Для password-store также создано большое количество графических оболочек и клиентов под различные ОС, включая мобильные, а также ряд расширений.

Установка и начало работы

# apt-get install password-store

Если у пользователя отсутствует пара ключей gpg, ее нужно создать (подробнее см. здесь, при создании следует выбирать тип RSA и RSA (по умолчанию), размер следует указать 4096 бит):

$ gpg --gen-key
Внимание: При создании пары ключей обязательно нужно задать пароль. Программа будет спрашивать этот пароль при попытке просмотреть пароль (содержимое файла) или скопировать его в буфер обмена

Далее нужно инициализировать хранилище:

$ pass init ид.№ ключа

Узнать ид.№ ключа можно с помощью команды

$ gpg --list-keys

Например, если первая строка вывода следующая

pub   4096R/7CB55075 2023-07-21

ид.№ является 7CB55075. Альтернативно в качестве ид.№ можно ввести электронную почту владельца.


Примечание: password-store поддерживает одновременное использование нескольких ключей gpg. В этом случае разные пароли могут быть зашифрованы разными ключами, что может быть полезно, например, при работе с копией хранилища разными пользователями.

Использование

Примечание: Для каталогов и файлов поддерживается автодополнение по клавише Tab.

Создать пароль можно командой

$ pass add название

В этом случае программа запросит ввести пароль вручную. Поддерживается автоматическая генерация паролей:

$ pass generate название #создает случайный пароль длиной 25 символов; состоит из спецсимволов, букв и цифр
$ pass generate название X #создает случайный пароль длиной X символов
$ pass generate --no-symbols название X #создает случайный пароль длиной X символов; не использует спецсимволы, только буквы и цифры

Также возможно создать один или несколько подкаталогов:

$ pass generate каталог/каталог/название
Внимание: Подкаталоги и названия файлов незашифрованы, зашифровано только содержимое файлов. Поэтому не следует в качестве названий использовать конфиденциальную информацию

Увидеть иерархию каталогов и файлов, можно введением команды без аргументов:

$ pass                                                                                                                                       
Password Store
├── group0
│   ├── key0
│   └── key1
└── group1
    ├── key2
    ├── key4
    └── key5

Чтобы вывести содержимое файла в консоль, нужно ввести команду (для просмотра содержимого программа запросит пароль от ключа gpg):

$ pass название

Есть возможность не выводить содержимое файла на консоль, а скопировать его в буфер обмена (если файл содержит несколько строк, копируется только первая строка; пароль из буфера обмена будет автоматически удален через 45 секунд):

$ pass -c название

Изменить содержимое файла можно командой:

$ pass edit название

Чтобы удалить файл, нужно ввести команду (каталоги будут удалены автоматически после того, как будет удален последний файл в нем):

$ pass rm название

Чтобы переместить файл, нужно ввести команду:

$ pass mv старое_название новое_название

Удалить все хранилище можно простым удалением каталога .password-store:

$ rm -rf ~/.password-store

Использование pass на нескольких компьютерах и перенос хранилища между устройствами

Перенос данных на другой компьютер

Для переноса хранилища на другой компьютер достаточно скопировать хранилище (по умолчанию находится в ~/.password-store) со старого ПК на новый. Например, при помощи scp:

$ scp -r ~/.password-store newpc.example.com:/home/user/

Дополнительно требуется скопировать ключ gpg. На старом ПК выполняем команду:

$ gpg2 --export-secret-keys > pass.gpg

Копируем файл gpg на новый ПК, например, при помощи scp:

$ scp pass.gpg newpc.example.com:/home/user/

Наконец, импортируем ключ на новом компьютере:

$ gpg --import ./pass.gpg
Примечание: Если на новом компьютере в каталоге пользователя уже содержится каталог .gnupg, его следует удалить. Иначе даже после импорта программа будет выдавать ошибку: "gpg: сбой расшифровки: Нет секретного ключа"

Встроенная поддержка git

Указанный выше способ переноса хранилища неудобен, если требуется обеспечить постоянную синхронизацию хранилища и одновременное использование на нескольких устройствах. Для этих целей гораздо удобнее использовать git, поддержка которого встроена в программу. Программа pass автоматически создает и поддерживает репозиторий git. Для задействования функционала git вручную нужно запустить pass в ключом 'git':

$ pass git команда

Например:

$ pass git status

Альтернативно можно переместиться в каталог хранилища и выполнять команды git оттуда напрямую. Поддержка git позволяет получить мощный функционал как по работе с локальным репозиторием, так и по созданию удаленного репозитория и синхронизации с ним.

Графические оболочки

На официальной странице программы в разделе "Compatible Clients" приведен список графических оболочек под разные операционные системы, в том числе мобильные. Таким образом, программа pass обладает достаточной гибкостью для обеспечения работы как из командной строки, так и в программах с графическим интерфейсом на различных операционных системах.


Ссылки: [https://www.passwordstore.org/