В данном руководстве не будет рассказано как инициализировать gpg2-ключ и пользоваться git.
Для начала нужен существующий gpg-ключ. О том, как его создать в Сети существует множество руководств, потому повторяться не буду (по крайней мере в данном руководстве; FIXME: если такое руководство появится на нашем форуме, ссылка появится здесь).
pass шифрует пароли (на самом деле любые файлы любого размера, но основная его функция, о чём говорит его название, — хранение паролей) с помощью gpg-ключа.
Чтобы увидеть свой ключ (в удобном формате), можно выполнить следующую команду:
Код:
gpg2 --keyid-format 0xlong --list-keys $(id -un) 2>/dev/null | awk '/^pub .* \[SC\].*/{print $2}' | sed 's@.*/@@'
Если команда ничего не выдала, можно заменить
$(id -un) на свой email.
Чтобы указать
pass, какой ключ нужно использовать, нужно сделать два шага: прописать в
~/.bashrc/
~/.zshrc (TODO: добавить описание для
fish):
Код:
export PASSWORD_STORE_KEY="0x0000000000000000" # Указать здесь свой ключ;
export PASSWORD_STORE_DIR="${HOME}/.password-store" # Или любая удобная директория, по умолчанию используется ${HOME}/.password-store;
export PASSWORD_STORE_CLIP_TIME="30" # Время в секундах, сколько пароль будет храниться в буфере обмена при копировании;
После этого нужно перезапустить
bash/
zsh, или выполнить одну из следующих команд (в зависимости от используемого шелла).
Для
bash:
Для
zsh:
После этого остаётся только инициализировать хранилище паролей:
Код:
pass init "${PASSWORD_STORE_KEY}"
Всё, можно пользоваться!
Чтобы убедиться, что всё работает, добавим новый пароль:
Код:
pass insert "site/user"
pass попросит ввести пароль
дважды, по умолчанию ввод скрыт (как в
login,
su,
sudo или
ssh). В случае использования опции
-e (
pass insert -e "site/user"), пароль будет показан при вводе, и ввести его нужно будет только один раз.
---
В
pass предусмотрен функционал версионирования с помощью
git. Для того, чтобы пользоваться
git внутри хранилища паролей, не требуется заходить (
cd) в директорию с паролями и не нужно использовать
git напрямую,
pass может "передавать" команды
git, то есть чтобы инициализировать git-репозиторий (
git init), нужно выполнить:
Если в хранилище уже были пароли, они будут автоматически добавлены в версионирование.
После этого
pass будет самостоятельно коммитить каждое изменение.
Также можно настроить удалённый репозиторий (FIXME: это относится к
git, и потому описано здесь не будет) и периодически делать
pass git push.