- PVSM.RU - https://www.pvsm.ru -
Я много лет искал подходящую мне хранилку паролей и недавно наткнулся на Pass на HackerNews. Идея хранить пароли в git-репозитории может выглядеть странно, но в целом это неплохая идея, потому что:
Я использую -c чтобы копировать/вставлять пароли. Есть расширение для браузера, но копипейст лично мне удобнее. Проблемы синхронизации с телефоном и всеми linux-дейвайсами тоже не стоит (потому что это всего лишь git).
Делюсь с вами переводом приветственной странички Pass.
С pass управлять отдельными файлами паролей становится крайне просто. Все пароли хранятся в ~ / .password-store, а pass предоставляет несколько удобных команд для добавления, редактирования, генерации и получения паролей. Это очень короткий и простой Shell скрипт. Он способен временно помещать пароли в буфер обмена и отслеживать изменения паролей с помощью git.
Вы можете редактировать хранилище паролей, используя стандартные команды оболочки unix вместе с командами pass. Нет никаких необычных форматов файлов или новых парадигм для изучения. Присутствует bash completion, так что вы можете просто нажать Tab для быстрого заполнения имени или команды,, а также подсказки для zsh и fish, доступных в папке /completion [2]. Очень активное сообщество пользователей pass создало множество необычных клиентов и графических интерфейсов для разных платформ, а также расширений для самого pass.
Команды pass подробно описана на странице руководства [3].
Мы можем перечислить все существующие пароли в хранилище:
zx2c4@laptop ~ $ pass
Password Store
├── Business
│ ├── some-silly-business-site.com
│ └── another-business-site.net
├── Email
│ ├── donenfeld.com
│ └── zx2c4.com
└── France
├── bank
├── freebox
└── mobilephone
Мы так же можем отображать пароли:
zx2c4@laptop ~ $ pass Email/zx2c4.com
sup3rh4x3rizmynam3
Или скопировать их в буфер:
zx2c4@laptop ~ $ pass -c Email/zx2c4.com
Copied Email/jason@zx2c4.com to clipboard. Will clear in 45 seconds.
Появится удобный диалог ввода пароля с использованием стандартного gpg-агента (который может быть настроен на поддержание сессии в течение нескольких минут), поскольку все пароли зашифрованы.
Мы можем добавить существующие пароли в хранилище с помощью insert:
zx2c4@laptop ~ $ pass insert Business/cheese-whiz-factory
Enter password for Business/cheese-whiz-factory: omg so much cheese what am i gonna do
Эта функция так же работает с многострочными паролями или другими данными с помощью --multiline или -m, а пароли можно редактировать в текстовом редакторе по умолчанию, используя pass edit pass-name.
Утилита может генерировать ( generate ) новые пароли, используя / dev / urandom:
zx2c4@laptop ~ $ pass generate Email/jasondonenfeld.com 15
The generated password to Email/jasondonenfeld.com is:
$(-QF&Q=IN2nFBx
Можно сгенерировать пароли без символов, используя --no-symbols или -n, а так же скопировать его в буфер обмена вместо того, чтобы отображать его в консоли, используя --clip или -c.
Конечно же, пароли можно удалить:
zx2c4@laptop ~ $ pass rm Business/cheese-whiz-factory
rm: remove regular file ‘/home/zx2c4/.password-store/Business/cheese-whiz-factory.gpg’? y
removed ‘/home/zx2c4/.password-store/Business/cheese-whiz-factory.gpg’
Если хранилищем паролей выступает репозиторий git, поскольку каждая манипуляция создает фиксацию git, вы можете синхронизировать хранилище паролей с помощью pass git push и pass git pull, которые вызывают git-push или git-pull в хранилище.
Вы можете прочитать больше примеров и функций на здесь [3].
Для начала есть одна команда для инициализации хранилища паролей:
zx2c4@laptop ~ $ pass init "ZX2C4 Password Storage Key"
mkdir: created directory ‘/home/zx2c4/.password-store’
Password store initialized for ZX2C4 Password Storage Key.
Здесь ZX2C4 Password Storage Key — это идентификатор ключа GPG. Вы можете использовать свой стандартный ключ GPG или использовать альтернативный, специально для хранилища паролей, как показано выше. Можно указать несколько ключей GPG для использования pass в группе, а разные папки могут иметь разные ключи GPG с помощью -p.
Мы можем дополнительно инициализировать хранилище паролей как репозиторий git:
zx2c4@laptop ~ $ pass git init
Initialized empty Git repository in /home/zx2c4/.password-store/.git/
zx2c4@laptop ~ $ pass git remote add origin kexec.com:pass-store
Если репозиторий git инициализирован, pass создает коммит внутри этого репозитория git каждый раз, когда манипулируют хранилищем паролей.
На странице руководства есть более подробный пример [4] инициализации.
Текущая версия — 1.7.3.
Ubuntu / Debian
$ sudo apt-get install pass
Fedora / RHEL
$ sudo yum install pass
openSUSE
$ sudo zypper in password-store
Gentoo
# emerge -av pass
Arch
$ pacman -S pass
Macintosh
Хранилище паролей доступно через диспетчер пакетов Homebrew [5]:
$ brew install pass
FreeBSD
# portmaster -d sysutils/password-store
Tarball
Архив содержит общий makefile, для которого достаточно выполнить простую команду sudo make install.
Репозиторий Git
Вы можете просмотреть репозиторий git [8] или клонировать репозиторий:
$ git clone https://git.zx2c4.com/password-store
Все выпуски помечены тегами, и теги подписаны с помощью 0xA5DE03AE.
Хранилище паролей не требует какой-либо конкретной схемы или типа организации ваших данных, поскольку это просто текстовый файл, который может содержать произвольные данные. Хотя наиболее распространенным случаем является хранение одного пароля для каждой записи, некоторые опытные пользователи решают, что хотели бы хранить в хранилище паролей не только свой пароль, но и дополнительно хранить ответы на секретные вопросы, URL-адреса веб-сайтов и другую конфиденциальную информацию или метаданные. Поскольку хранилище паролей не требует собственной схемы, вы можете выбрать свою организацию. Существует множество допустимых структур.
Один из подходов — использовать многострочные функции pass (--multiline или -m in insert) и хранить сам пароль в первой строке файла, а дополнительную информацию — в последующих строках. Например, Amazon / bookreader может выглядеть так:
Yw|ZSNH!}z"6{ym9pI
URL: *.amazon.com/*
Username: AmazonianChicken@example.com
Secret Question 1: What is your childhood best friend's most bizarre superhero fantasy? Oh god, Amazon, it's too awful to say...
Phone Support PIN #: 84719
Это предпочтительная организационная схема, используемая автором.
Параметры --clip / -c копируют в буфер обмена только первую строку такого файла, тем самым упрощая получение пароля для форм входа в систему, сохраняя при этом дополнительную информацию в том же файле.
Другой подход — использовать папки и хранить каждый фрагмент данных внутри файла в этой папке. Например, Amazon / bookreader / password будет содержать пароль читателя внутри каталога Amazon / bookreader, а Amazon / bookreader / secretquestion1 будет содержать секретный вопрос, Amazon / bookreader / sensitivecode будет содержать что-то еще, связанное с учетной записью читателя и так далее. Можно так же сохранить пароль в Amazon / bookreader, а дополнительные данные — в Amazon / bookreader.meta. И еще один подход может заключаться в использовании многострочности, как описано выше, но помещать шаблон URL-адреса в имя файла, а не внутри файла.
В общем — возможности здесь чрезвычайно многочисленны, и есть много других организационных схем, не упомянутых выше; у Вас есть свобода выбора того, что лучше всего соответствует вашему рабочему процессу.
Чтобы облегчить пользователям реализацию разнообразных вариантов использования, pass поддерживает расширения. Расширения, установленные в / usr / lib / password-store / extensions (или их разновидности, зависящие от дистрибутива), всегда включены. А те расширения, которые установлены в ~ / .password-store / .extensions / COMMAND.bash, включены, если переменная среды PASSWORD_STORE_ENABLE_EXTENSIONS имеет значение true. Дополнительные сведения см. На странице руководства [3].
Сообщество создало множество таких расширений:
Сообщество pass собрало впечатляющий список клиентов и графических интерфейсов для различных платформ:
Чтобы освободить данные о паролях из лап других (раздутых) менеджеров паролей, разные пользователи придумали разные организации хранения паролей, которые лучше всего подходят для них. Некоторые пользователи предоставили сценарии, чтобы помочь импортировать пароли из других программ:
pass был написан Джейсоном А. Доненфельдом [47] из zx2c4.com [48] и распространяется под лицензией GPLv2 [49] +.
Это очень активный проект со значительным количеством участников [50]. Лучший способ внести свой вклад в хранилище паролей — это присоединиться к списку рассылки [51] и отправлять патчи в формате git. Вы также можете присоединиться к обсуждению в #pass на Freenode.
Автор: owlofmacloud
Источник [53]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/git/363510
Ссылки в тексте:
[1] Unix: https://en.wikipedia.org/wiki/Unix_philosophy
[2] /completion: https://git.zx2c4.com/password-store/tree/src/completion
[3] руководства: https://git.zx2c4.com/password-store/about/
[4] пример: https://git.zx2c4.com/password-store/about/#EXTENDED%20GIT%20EXAMPLE
[5] Homebrew: https://brew.sh
[6] Версия 1.7.3: https://git.zx2c4.com/password-store/snapshot/password-store-1.7.3.tar.xz
[7] Последний Git: https://git.zx2c4.com/password-store/snapshot/password-store-master.tar.xz
[8] репозиторий git: https://git.zx2c4.com/password-store/
[9] pass-tomb: https://github.com/roddhjav/pass-tomb#readme
[10] TOMB: https://www.dyne.org/software/tomb/
[11] pass-update: https://github.com/roddhjav/pass-update#readme
[12] pass-import: https://github.com/roddhjav/pass-import#readme
[13] pass-extension-tail: https://github.com/palortoff/pass-extension-tail#readme
[14] pass-extension-wclip: https://github.com/palortoff/pass-extension-wclip#readme
[15] pass-otp: https://github.com/tadfisher/pass-otp#readme
[16] passmenu: https://git.zx2c4.com/password-store/tree/contrib/dmenu
[17] qtpass: https://qtpass.org
[18] Android-Password-Store: https://github.com/zeapo/Android-Password-Store#readme
[19] passforios: https://mssun.github.io/passforios/
[20] pass-ios: https://github.com/davidjb/pass-ios#readme
[21] passff: https://github.com/jvenant/passff#readme
[22] browserpass: https://github.com/dannyvankooten/browserpass#readme
[23] Pass4Win: https://github.com/mbos/Pass4Win#readme
[24] pext_module_pass: https://github.com/Pext/pext_module_pass#readme
[25] gopass: https://github.com/cortex/gopass#readme
[26] upass: https://github.com/Kwpolska/upass#readme
[27] alfred-pass: https://github.com/CGenie/alfred-pass#readme
[28] pass-alfred: https://github.com/MatthewWest/pass-alfred#readme)
[29] pass.applescript: https://git.zx2c4.com/password-store/tree/contrib/pass.applescript
[30] pass-git-helper: https://github.com/languitar/pass-git-helper
[31] password-store.el: https://git.zx2c4.com/password-store/tree/contrib/emacs
[32] XMonad.Prompt.Pass: https://hackage.haskell.org/package/xmonad-contrib-0.13/docs/XMonad-Prompt-Pass.html
[33] 1password2pass.rb: https://git.zx2c4.com/password-store/tree/contrib/importers/1password2pass.rb
[34] keepassx2pass.py: https://git.zx2c4.com/password-store/tree/contrib/importers/keepassx2pass.py
[35] keepass2pass.py: https://git.zx2c4.com/password-store/tree/contrib/importers/keepass2pass.py
[36] fpm2pass.pl: https://git.zx2c4.com/password-store/tree/contrib/importers/fpm2pass.pl
[37] lastpass2pass.rb: https://git.zx2c4.com/password-store/tree/contrib/importers/lastpass2pass.rb
[38] kedpm2pass.py: https://git.zx2c4.com/password-store/tree/contrib/importers/kedpm2pass.py
[39] revelation2pass.py: https://git.zx2c4.com/password-store/tree/contrib/importers/revelation2pass.py
[40] gorilla2pass.rb: https://git.zx2c4.com/password-store/tree/contrib/importers/gorilla2pass.rb
[41] pwsafe2pass.sh: https://git.zx2c4.com/password-store/tree/contrib/importers/pwsafe2pass.sh
[42] kwallet2pass.py: https://git.zx2c4.com/password-store/tree/contrib/importers/kwallet2pass.py
[43] roboform2pass.rb: https://git.zx2c4.com/password-store/tree/contrib/importers/roboform2pass.rb
[44] password-exporter2pass.py: https://git.zx2c4.com/password-store/tree/contrib/importers/password-exporter2pass.py
[45] pwsafe2pass.py: https://git.zx2c4.com/password-store/tree/contrib/importers/pwsafe2pass.py
[46] firefox_decrypt: https://github.com/Unode/firefox_decrypt/#readme
[47] Джейсоном А. Доненфельдом: http://Jason@zx2c4.com
[48] zx2c4.com: http://zx2c4.com/
[49] GPLv2: http://www.gnu.org/licenses/gpl-2.0.html
[50] значительным количеством участников: https://git.zx2c4.com/password-store/stats/?period=y&ofs=-1
[51] присоединиться к списку рассылки: http://lists.zx2c4.com/listinfo.cgi/password-store-zx2c4.com
[52] серверы: https://macloud.ru/?partner=z3sd9322c1
[53] Источник: https://habr.com/ru/post/553340/?utm_source=habrahabr&utm_medium=rss&utm_campaign=553340
Нажмите здесь для печати.