Программа pass как работать

Всем привет. В этой статье я хотел бы поделиться своим опытом настройки и использования pass — менеджера паролей для Linux и не только, примечательного своей простотой, использованием уже присутствующих в системе инструментов и возможностью работать исключительно из консоли. Конкретнее, будут затронуты проблемы, связанные с генерацией и хранением секретного ключа gpg, а также с настройкой совместной работы pass, gpg, git, github и браузера. Всё — под Linux, Windows и Android.

Что это такое и как оно работает

Технически pass является очень простой обвязкой над GnuPG и git, написанной на bash. Каждый пароль (и сопутствующая ему информация, например логин) хранится в зашифрованном файле. Поиск нужного пароля осуществляется по имени файла, шифрование — при помощи GnuPG, синхронизация между устройствами — при помощи git.

Кроме оригинального pass есть еще два совместимых с ним популярных проекта, работающих и под Windows:

  1. QtPass. GUI-приложение, написанное, как нетрудно догадаться, на Qt.
  2. Gopass. Приложение для командной строки, написанное на go. Под Windows я пользуюсь именно им. Однако, на мой взгляд, разработчики начали добавлять туда слишком много лишних фич, при этом отказываясь от интуитивности.

Разработчик pass — Джейсон Доненфельд, также являющийся автором WireGuard (реализации VPN на основе современных стандартов криптографии, «work of art по сравнению с OpenVPN и IPSec» по мнению Линуса Торвальдса, которая скорее всего появится в ядре Linux 5.6).

Pass. Синхронизация между компьютерами и телефоном. Менеджер паролей.

Создание секретного ключа

GnuPG — система для шифрования и электронных подписей. Несмотря на недостатки (вот, например, статья с критикой gpg), она уже больше 20 лет остается де-факто стандартом. Даже статья по ссылке затрудняется назвать альтернативный инструмент для шифрования файлов.

Процесс создания секретного ключа в консоли описан например на habr, но почему бы не сделать это в GUI? В проекте KDE сделали фронтенд для GPG под названием Kleopatra. Пользователи Linux найдут его в репозиториях, а в gpg4win Kleopatra есть из коробки.

В меню выбираем File — New Key Pair — Create a personal OpenPGP key pair .

Вводим имя и email. Не нужно беспокоиться, что в будущем вы их смените. GPG позволяет свободно добавлять к ключу новые uid и удалять существующие. Если хотите подписывать создаваемым ключом свои git-коммиты и видеть плашки «Verified» напротив них, то тут нужно указать реальный email, имеющий статус «подтвержденный» в вашем аккаунте на github.

Далее нажимаем Advanced Settings для настройки параметров ключа.

В разделе Key Material выбираем ECDSA/EdDSA + ECDH . Я предпочитаю использовать не классический алгоритм RSA, а основанные на эллиптических кривых ed25519/cv25519. Их основное преимущество над RSA с точки зрения конечного пользователя — меньший размер ключа при аналогичной криптостойкости. Утверждается, что ключ ed25519 длиной 256 бит примерно такой же стойкий, как ключ RSA длиной 3072 бита. Единственное преимущество последнего — большая распространенность, особенно в аппаратных системах.

Менеджер паролей Keepass как установить, включить Русский, настроить

В меню еще можно выбрать семейства кривых Brainpool и NIST. Однако вторые подозреваются в наличии бэкдора NSA, и к первым тоже есть небольшие претензии. Поэтому предложенные известным криптографом Даниэлем Бернштейном ed25519 и cv25519 — лучший выбор.

Интересный факт: в активно продвигаемом сейчас стандарте аутентификации FIDO U2F (в разработке которого активно участвовала компания Google) применяются именно кривые NIST. Также, например, в Android Keystore есть их поддержка, но нет поддержки ed25519. Почему так произошло?

В результате будет создано 2 подключа на эллиптических кривых. Один для подписей, другой для шифрования, что нам и нужно. GPG не позволяет использовать один подключ и для того, и для другого, несмотря на то что алгоритмически это возможно (соответствующие функции есть, например, в библиотеке libsodium ).

Если планируете использовать этот ключ для работы с git, то в разделе Certificate Usage нужно отметить пункты Signing и Authentication .

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

Генерация мастер-пароля

Разумеется, всегда можно сгенерировать случайную строку из достаточного (например 20) количества символов. Однако её практически невозможно запомнить и трудно ввести без ошибок, особенно на смартфоне. Поэтому EFF в своем гайде рекомендует вместо этого пользоваться парольными фразами.

Метод работает так: берем достаточно большой словарь (EFF предлагает несколько словарей, например этот) и выбираем из него не менее 6 случайных слов. Выбирать можно как угодно, даже вообще без компьютера при помощи игральной кости или монетки. Такой метод называется diceware. До игральных костей и монеток я еще не дошел, поэтому просто воспользуюсь входящей в состав GNU coreutils утилитой shuf :

$ shuf —random-source=/dev/random -n 6 ./eff_large_wordlist.txt 51345 rendering 24564 edging 65652 vivacious 31343 footprint 55261 snore 24436 earache

Сохраняем эту парольную фразу в надежном месте за пределами компьютера.

В результате будет создан секретный ключ. При работе в консоли часто придётся указывать его fingerprint, стоит записать это число.

Теперь можно настроить интеграцию gpg и git.

Интеграция gpg, git и github

Строго говоря, этот пункт не обязателен. Хранилище паролей pass — это просто каталог с зашифрованными файлами, а значит, его можно синхронизировать как угодно. Google Drive, Яндекс.Диск, и т.д. и т.п. Если не хотите использовать git, то советую обратить внимание на Syncthing. Это программа с открытым исходным кодом, которая требует минимум настроек и передаёт файлы напрямую между устройствами, не храня их на сторонних серверах.

В качестве git-хостинга никто не мешает поднять свой собственный сервер, поставив туда например Gitea, однако это означает затраты на его поддержку и не обязательно гарантирует большие безопасность и надежность. Поэтому я, не гнушаясь пользоваться продуктами фирмы Microsoft, просто создал приватный репозиторий на github.

Стандартный механизм аутентификации в git — с помощью SSH. Обычно подразумевается, что для этого нужен специальный ключ ssh. Однако есть возможность, не плодя лишние сущности, использовать созданный на предыдущем шаге ключ gpg. Чтобы gpg-ключ (точнее, подключ) мог использоваться ssh, должны быть выполнены два условия:

  1. у него должен быть установлен флаг A — Authenticate;
  2. его keygrip должен быть прописан в файле ~/.gnupg/sshcontrol .

Первый пункт уже выполнен, а получить keygrip можно командой

gpg —list-secret-keys —with-keygrip 0609C9DFEF1AA2B38DEDBADCC0544B5554068AC7

В выводе gpg нас интересует keygrip подключа ed25519 ( 05B6641E23D720E87EE6A26020BAB214B842F2B7 ).

Теперь можно загрузить публичный ключ на github. Заходим в раздел SSH and GPG keys в профиле и выбираем New SSH key . В консоли набираем

$ gpg —export-ssh-key 0609C9DFEF1AA2B38DEDBADCC0544B5554068AC7 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPfj81nennAoujvw1fLzGx9iED34zk5oDMYKuUcBq5wv openpgp:0x54068AC7

и копируем получившийся публичный ssh-ключ.

Git может подписывать коммиты с помощью gpg, и github это поддерживает. Думаю, это полезная для безопасности фича. Экспортируем публичный ключ gpg командой

$ gpg —export —armor 0609C9DFEF1AA2B38DEDBADCC0544B5554068AC7 ——BEGIN PGP PUBLIC KEY BLOCK—— mDMEXcrHrBYJKwYBBAHaRw8BAQdA9+PzWd6ecCi6O/DV8vMbH2IQPfjOTmgMxgq5 RwGrnC+0G0hlbGxvIEhhYnIgPGZha2VAZW1haWwuY29tPoiQBBMWCAA4BQsJCAcC BhUKCQgLAgQWAgMBAh4BAheAFiEEBgnJ3+8aorON7brcwFRLVVQGiscFAl3WO2wC GyMACgkQwFRLVVQGiscg5AEAkh0a6OQS2CPiXq9bWB+wULHUGT6NYZhwZ3eUQCfH Zq0A/iFBJQkAZIFdqH84ksFbvv6K/LQy72NRJzK0tho6qFwHuDgEXcrHrBIKKwYB BAGXVQEFAQEHQEs6UVOtj5yMGxvRcMU577miH/Bh5kZWMJKHxsDBcXV4AwEIB4h4 BBgWCAAgFiEEBgnJ3+8aorON7brcwFRLVVQGiscFAl3Kx6wCGwwACgkQwFRLVVQG isea8wD/X5JSJW0PMu/KucytUZZo8obHa86/TUwH/8+xQ3+djuEBALugbQRmCIr5 /JYO7x5PNA0QYqhh7LIZ9nKYp0mhqpcO =dc89 ——END PGP PUBLIC KEY BLOCK——

и копируем то, что получилось, в форму New GPG key .
Дальнейшие действия специфичны для используемой операционной системы.

Читайте также:
Прекращена работа программы x ray

Интеграция gpg и git (linux)

Используемый git клиент OpenSSH может получать ключи двумя способами: из каталога ~/.ssh и через сокет, созданный демоном ssh-agent . В качестве последнего может выступать gpg-agent , чем мы и воспользуемся. В файле ~/.gnupg/gpg-agent.conf нужно прописать строку enable-ssh-support .

Перезапускаем gpg-agent командой

gpg-connect-agent reloadagent /bye

После этого он создаст сокет по адресу

$/gnupg/S.gpg-agent.ssh

Этот путь (он может зависеть от дистрибутива) надо прописать в переменной окружения $SSH_AUTH_SOCK , и ssh его подхватит. Набираем в консоли команду

и если все прошло успешно, то после ввода мастер-пароля появится сообщение об успешной аутентификации.

Интеграция gpg и git (Windows)

Относительно недавно Microsoft добавила OpenSSH в число доступных для установки компонентов Windows, а также реализовала поддержку сокетов типа AF_UNIX , таких как тот самый SSH_AUTH_SOCK . Тем не менее, Win32-OpenSSH не умеет взаимодействовать с gpg4win, так как до сих пор использует только именованные каналы.

Поэтому придётся установить вечнозелёный Putty. Прописываем в файле

~/AppData/Roaming/gnupg/gpg-agent.conf

строку enable-putty-support и перезапускаем gpg-agent. После этого он начнет прикидываться Pageant — демоном ключей. В той же папке должен быть расположен и файл sshcontrol .

Чтобы git-клиент начал использовать putty, нужно создать переменную окружения GIT_SSH с путем до plink.exe . Например, у меня это

C:ProgramDatachocolateybinPLINK.EXE

Кстати насчет git. Обычно устанавливающийся клиент git for windows содержит много ненужного (по крайней мере, ненужного для работы gopass), например собственную реализацию OpenSSH. Однако его разработчики делают и более легкие версии, которые можно скачать на github.

Например, там есть в 2 раза меньший по размеру MinGit, а рисковые люди могут попробовать и MinGit-busybox. Версия busybox возникла из-за стремления разработчиков создать git-клиент, использующий api Win32 без прослоек вроде MSYS2. Однако, по их же отзывам, mingit-busybox пока содержит много багов. Подробнее об этих усилиях можно почитать в тикете.

Убеждаемся, что gpg-agent запущен ( gpg-connect-agent /bye ), и проверяем соединение с github:

Настройка git

Здесь ничего необычного. Думаю, команды можно привести без комментариев:

Пункт gpg.program нужен, если gpg нет в PATH .

Бэкап секретного ключа

Секретный ключ стоит хранить так же надежно, как и парольную фразу, то есть за пределами компьютера. Можно просто распечатать длинную последовательность чисел, но распознавать её или вводить с клавиатуры — занятие не для слабонервных. Поэтому я предпочитаю генерировать QR-код, который легко отсканировать любым смартфоном. Для этого есть специальная программа qrencode . Генерация картинки с QR-кодом выполняется так:

gpg —export-secret-key 0609C9DFEF1AA2B38DEDBADCC0544B5554068AC7 | qrencode —8bit —output secret-key.qr.png

Разумеется, чем меньше ненужной информации в бэкапе, тем лучше. Здесь очень кстати приходится небольшой размер ключа ed25519. Спасибо Даниэлю Бернштейну!

Существует специальная утилита paperkey, позволяющая сократить объем данных до предела. Ценой сокращения является то, что секретный ключ из такого бэкапа можно будет восстановить только при наличии публичного. В экосистеме GPG есть специальные сервера для хранения публичных ключей, почитать про них и не только можно в статье https://eax.me/gpg/.

Бэкап paperkey создается следующим образом:

gpg —export-key 0609C9DFEF1AA2B38DEDBADCC0544B5554068AC7 > pubkey.asc gpg —export-secret-key 0609C9DFEF1AA2B38DEDBADCC0544B5554068AC7 | paperkey —output-type raw | qrencode —8bit —output secret-key.qr.png

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

gpg —delete-secret-key 0609C9DFEF1AA2B38DEDBADCC0544B5554068AC7

Затем сканируем QR-код и импортируем ключ обратно в GPG. В качестве сканера QR-кодов под Android мне нравится BinaryEye, свободная программа с удобным интерфейсом. На картинке ниже — бэкап секретного ключа из этой статьи.

paperkey —pubring pubkey.asc —secrets from_qr.asc > secretkey.asc gpg —import ./secretkey.asc

Надеюсь, вы нигде не будете использовать этот ключ. Он создан только для иллюстрации.

Если все работает, то можно двигаться дальше.

Использование (go)pass

Теперь, когда у нас есть надежно сохраненный и защищенный секретный ключ, а также работающая интеграция с git, можно начинать пользоваться собственно pass. Я предпочитаю gopass, так как эта альтернативная обвязка работает под Windows.
Инициализируем хранилище паролей командой

gopass init

и выбираем из списка нужный секретный ключ.

Работа с git происходит так же, как в случае с обычным репозиторием, только в командной строке надо дописывать (go)pass . Инициализируем репозиторий и добавляем туда нужный origin:

Адрес можно узнать на странице репозитория на github, нажав кнопку Clone or download .

В gopass есть специфичная команда

gopass sync

выполняющая и git pull , и git push , то есть полную синхронизацию.

Хранилище по умолчанию создается в папке ~/.password-store , но можно указать и свой путь.
Для работы с паролями в консоли поддерживаются команды ls, cp, mv, search, create, и т.п. Полный список можно получить, набрав gopass —help , но лично я 95% времени пользуюсь не консолью, а плагином для браузера.

Интеграция с браузером

Плагин для браузера называется gopass bridge, его можно найти в сторах Chrome и Firefox (см. ссылку).

Для связи плагина с собственно gopass понадобятся вспомогательный скрипт и манифест для native messaging. Они создаются командой

gopass jsonapi configure

которая предложит нам выбрать браузер и расположение скрипта.

Проверяем, как все работает. Создаем новый пароль:

gopass new habr

отвечаем на все вопросы и сохраняем. GPG предложит ввести мастер-пароль для работы с секретным ключoм.

Теперь открываем меню плагина с характерным голубым сусликом, и если все прошло успешно, то мы сможем найти там свой пароль.

TOTP-ключи

Лично я пользуюсь FreeOTP, однако с этими ключами можно работать и с помощью pass. Пользователям оригинального pass надо установить расширение pass-otp, а в gopass и APS (см. ниже) нужные функции есть из коробки.

Чтобы добавить TOTP-ключ в хранилище паролей при помощи pass-otp, получаем URL (начинающийся с otpauth:// ) и вводим команду

pass otp insert totp-secret

Можно ли будет назвать двухфакторной получившуюся аутентификацию — спорный вопрос. Разработчики KeePassXC рекомендуют хранить TOTP-ключи в отдельной базе данных, защищенной другим паролем. В pass так тоже можно сделать.

Интеграция с Android

Реализация GnuPG под Android называется OpenKeychain. Для её настройки достаточно зайти в меню «управление ключами» и импортировать ранее созданный секретный ключ. Единственный недостаток OpenKeychain лично для меня — нет разблокировки по отпечатку пальца.

Реализация pass под Android называется android-password-store, или просто APS.

Устанавливаем и запускаем APS. Прежде чем синхронизировать хранилище паролей, заходим в меню «Настройки». Там нам понадобятся следующие пункты:

  1. Настройки сервера git . Получившийся URL должен быть таким же, какой указан на странице репозитория на github. Тип авторизации — OpenKeychain .
  2. Git utils . В этом разделе указываем username и email из ключа gpg.
  3. Провайдер OpenPGP . Выбираем OpenKeychain .
  4. Автозаполнение . Эта совсем недавно появившаяся фича включает заполнение паролей в приложениях на Android 8.0+.

На заметку пользователям смартфонов Huawei, да и всем остальным тоже: OpenKeychain, APS, BinaryEye, FreeOTP, а также Syncthing, Telegram, Tachiyomi, KDE Connect и много чего еще доступны в F-Droid. Пользователи Google Play должны это оценить: каталог ПО, в котором нет рекламы, руткитов, и просто мусорного софта из известной статьи tonsky.

До появления автозаполнения в APS я пользовался keepass2android. Её нет в F-Droid по оригинальной причине: она написана на Xamarin, но мейнтейнеры F-Droid вот уже 9 месяцев как не могут установить этот фреймворк на свой сборочный сервер. Кто-нибудь, сделайте что-нибудь.

Теперь можно клонировать. Выбираем на главном экране «клонировать с сервера», указываем желаемое расположение хранилища, проверяем настройки git.

Если попытка работы с git приведет к ошибке (это было вероятно в предыдущих релизах APS из-за использования устаревшей версии библиотеки jgit от проекта Eclipse), то по-прежнему есть Syncthing.

Читайте также:
Как удалить ненужные программы на компьютере видео

Заключение

Конечно, pass не так просто настроить. Однако за эту цену покупается уверенность, что используемые нами (а также людьми вроде Линуса Торвальдса или Эдварда Сноудена) инструменты в один прекрасный момент не будут объявлены устаревшими, не сменят формат данных и не окажутся без поддержки. А если и окажутся, то простая модульная архитектура pass поощряет создание каких угодно альтернативных клиентов и расширений.

Если вы решите не использовать pass, то, надеюсь, некоторые упомянутые в статье программы окажутся вам полезными и сами по себе.

Источник: temofeev.ru

Pass — консольный менеджер паролей

Pass — это небольшой bash-скрипт хранящий пароли в обычных текстовых файлах зашифрованных с помощью GPG. Файлы можно организовывать в директории, при этом имя файла является названием сайта или ресурса для которого файл хранит пароль. Файлы имеют очень простой формат: первая строка содержит только пароль, все остальные строки содержат любые другие данные. Например, файл github.com.gpg может иметь такое содержимое:

Указывать поля вида login: и url: именно в таком формате не обязательно, но подобные метаданные позволяют менеджеру паролей автоматически подставлять ваш логин на веб-сайтах.

Очень простой формат файла и организации хранения паролей дает нам большие возможности: мы можем просматривать и редактировать пароли без установленной программы pass (достаточно иметь установленные GnuPG и любой текстовый редактор), мы можем писать свои скрипты для работы с паролями, мы можем хранить все изменения паролей в системе контроля версий git и синхронизировать пароли на разных компьютерах через неё же. Также pass имеет большую поддержку со стороны сообщества: существуют реализации программы для Android и iOS, плагины для веб-браузеров Chrome и Firefox, графические клиенты для Windows, Mac и Linux, расширения для Alfred, dmenu, rofi и Emacs, скрипты для импорта паролей из других приложений.

В этой статье мы рассмотрим именно консольную версию, доступную на сайте https://www.passwordstore.org/

Установка

Установить программу вы можете с помощью пакетного менеджера своего дистрибутива, например:

  • для Ubuntu Debian: sudo apt-get install pass
  • для ArchLinux: pacman -S pass
  • для macOS: brew install pass

Предварительная настройка

Чтобы использовать программу вам нужен gpg-ключ, которым будут шифроваться файлы с паролями. Если у вас ещё нет своего ключа, то прочтите вот эту статью и создайте его.

Далее пишем в терминале pass init gpg-id , где вместо gpg-id вам необходимо вписать id вашего gpg ключа. Проще всего это сделать нажав Tab после того как вы написали pass init и выбрав один из предложенных автодополнением вариантов.

Эта команда создаст директорию ~/.password-store в которой будут храниться ваши пароли и запомнит каким ключом их шифровать (вы также можете использовать разные gpg ключи для разных поддиректорий, для этого есть флаг -s: pass init -s поддиректория second-gpg-id )

Если вы хотите, чтобы директория с паролями хранилась в git-репозитории, то выполните команду pass git init . После этого при каждом созданииизменении паролей pass будет автоматически делать коммит в репозиторий.

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

Если вам нужно по-быстрому сгенерировать пароль, то можете написать pass generate youtube.com 15 . Эта команда сгенерирует новый пароль длинной 15 символов, запишет его в файл youtube.com.gpg и покажет на экране. Если вы добавите опцию -n, то пароль будет состоять только из букв и цифр (без специальных символов), если добавите опцию -c, то пароль сразу будет скопирован в буфер обмена.

Ранее я писал, что в файле может содержаться не только пароль, но и другая текстовая информация (например логин или просто какие-то заметки). Для того что бы записать несколько строк в файл вы можете использовать опции –multiline или -m: pass insert -m web/github.com . Напоминаю: пароль вводится в первой строке, а все остальные данные уже после него на отдельных строках (см. пример в начале статьи). Что бы закончить ввод и сохранить данные нажмите Ctrl+d.

Изменить файл с паролем можно командой pass edit web/github.com . При этом откроется редактор указанный в переменной окружения EDITOR. Этой командой также можно добавлять в хранилище новые пароли, если вам удобнее делать это через текстовый редактор.

Для удаления файла с паролем используется команда pass rm web/github.com , а для переименования pass mv старое_название новое_название .

Для того чтобы показать пароль на экране просто введите pass web/github.com . При этом, чтобы не вводить длинные названия сайтов, вы можете пользоваться автодополнением bash нажимая клавишу Tab . Используйте флаг -c чтобы сразу скопировать пароль в буфер обмена: pass -с web/github.com .

Посмотреть какие вообще есть записи в хранилище можно просто введя pass (а для просмотра записей в отдельной директории pass имя_директории ).

Вы можете искать файлы по части названия pass find строка_поиска и, более того, вы можете искать внутри всех файлов с паролями pass grep строка_поиска (правда это действие довольно медленное).

Версионирование и синхронизация

Выше я писал, что если вы выполните команду pass git init , то программа создаст внутри хранилища паролей git-репозиторий и будет автоматически коммитить все изменения. А это означает, что из коробки у нас появляется синхроницация паролей на разных компьютерах.

Вы можете использовать любые команды git, написав перед ними слово pass . Это нужно, чтобы перед их вызовом вам не приходилось каждый раз переходить в директорию ~/.password-store.

Добавляем адрес репозитория на вашем сервере pass git remote add origin your-remote-server.com:pass-store .

Забираем с него файлы с паролями pass git pull .

Сохраняем локально добавленные или изменённые пароли на удаленный сервер pass git push .

Как видите pass очень простая, но мощная утилита, следующая философии unix. Часто её ругают за то, что названия файлов с паролями хранятся в открытом виде (а они обычно представляют собой названия сайтов на которых вы зарегистрированы). Но лично мне нравится настолько простой формат хранения паролей.

Похожие статьи:

  • Как сделать раздел жесткого диска доступным нескольким пользователям
  • atool: простая работа с архивами в Linux
  • Запись CD/DVD дисков из консоли
  • Монтируем образ диска через FuseISO
  • Как восстановить Windows MBR из-под Linux

Источник: emunix.org

Управляйте своими паролями с помощью pass

Давайте поговорим о паролях. В основном, это то, что вы должны использовать для каждой учетной записи в Интернете. Либо вы этого не делаете, сделайте это частично (например, сочетание между версией имени и фамилии службы, используемой в тексте, с заглавной буквой и символом, который не является ни буквой, ни номером в каком-либо месте, например mySup3r13bs! t3MyUsualPassword), или у вас есть менеджер паролей.

Мне было довольно сложно найти менеджер паролей, который соответствует моим потребностям. В течение последних нескольких лет я пробовал немало из них и в конечном итоге перестал использовать их один за другим. LastPass из-за его плохого UX по важным для меня моментам, и я не мог чувствовать себя уверенно в том, чтобы доверять такой централизованной и закрытой службе.

Keepass, потому что было больно синхронизировать мою базу данных между всеми устройствами. Passbolt, потому что он фокусируется на случае использования команды, и я хочу что-то, предназначенное для людей. Вы называете это.

Через некоторое время я начал пытаться получить описание того, что я хотел. Для меня идеальным менеджером паролей должно быть:

  • бесплатно программное обеспечение
  • проверка безопасности
  • синхронизируемый через устройства
  • самостоятельно hostable
  • легко настраивается
  • простой/быстрый в использовании

Я понял, что это довольно идеалистическое описание, и подумал, что я закончил работу с менеджерами паролей. Справедливости ради, и по сей день я все еще не нашел того, который соответствует всем моим критериям, хотя тот, о котором я расскажу в этом посте, будет довольно близким.

Читайте также:
Как продлить отпуск до 3 лет в программе 1с зуп

Кроме того, позвольте мне сначала разобраться: последние два пункта в приведенном выше списке используют относительное определение «легко», то есть то, что легко настроить/использовать для меня, как у кого-то, у кого есть некоторые технические знания и опыт. В частности, решение, о котором я буду писать в этом сообщении, будет обозначаться как очень больно для использования кем-то, кто не используется для bash, git et al.

Все дело в простоте#

Эта растущая осведомленность способствовала популярности менеджеров паролей, инструментов, предназначенных для безопасного создания, хранения и извлечения паролей, зашифрованных с помощью главного пароля или парольной фразы. В некоторых случаях они локально хранятся, например, KeePass, а в других они хранятся в веб-службе, например LastPass. Оба являются хорошими инструментами и хорошо работают с GNU/Linux. У меня лично есть некоторые оговорки в отношении LastPass, поскольку я не хочу, чтобы мои пароли хранились в сторонней службе, и я не доверяю шифрованию JavaScript.

Pass — это минимальный и очень простой менеджер паролей, который состоит из скрипта bash длиной 699 строк (включая комментарии). Он хранит ваш пароль в виде файлов в заданном каталоге («хранилище») и шифрует их с помощью GnuPG. Таким образом, вы можете упорядочить свои пароли по своему желанию, как и многие подкаталоги по своему усмотрению, и они будут сохранены, возможно, вместе с некоторыми метаданными, в несколько безопасном режиме.

Интересно, что, поскольку теперь у нас есть аккуратная настройка GnuPG для обработки самого шифрования, другой вариант — это инструмент pass (1), выписывающий себя как «стандартный менеджер паролей UNIX». Это немного больше, чем сценарий оболочки и некоторые дополнения bash (1), завернутые вокруг существующих инструментов, таких как git (1), gpg2 (1), pwgen (1), tree (1) и xclip (1) и ваш выбор $EDITOR. Если вы еще не инвестировали в существующий метод управления паролями, вы можете найти это хорошее первое приложение новой настройки криптографии и минимальный подход к безопасному хранению паролей, доступный из командной строки (и, следовательно, SSH).

В Debian-производных системах он доступен как часть пакета pass:

sudo apt-get install pass

Это включает в себя руководство:

$ man pass

Инструкции по установке на другие операционные системы также доступны на сайте. Релизы также доступны для загрузки и ссылка на репозиторий разработки. Если вы используете это, убедитесь, что у вас также установлены необходимые инструменты, указанные выше, хотя xclip (1) необходим только при запуске системы X Windows.

Настроить#

Вам также нужно будет сгенерировать ключ GPG, который является пропускным эквивалентом главного ключа хранилища/кодовой фразы, если у вас его нет, что я также не буду здесь освещать, так как в Интернете есть большие ресурсы для Интернета ,

После того как пропуск установлен, давайте инициализируем магазин с

pass init GPG-ID

Здесь GPG-ID — это идентификатор ключа, который вы будете использовать для шифрования ваших паролей.

Затем он инициализирует хранилище в каталоге, путь которого ~ /.password-store и создается, если он не существует. Этот каталог является тем, в котором пропуск будет работать при каждом вызове, который вы сделаете в будущем. Это значение можно переопределить, установив переменную окружения PASSWORD_STORE_DIR.

Действительно, мы отмечаем, что каталог ~ /.password-store создан, хотя он в настоящее время пуст, за исключением файла .gpg-id, записывающего наш идентификатор ключа:

$ find .password-store .password-store .password-store/.gpg-id

Добавление существующего пароля#

Поскольку у вас есть учетные записи в Интернете перед началом использования pass, вы можете захотеть сохранить свои пароли в своем новом хранилище паролей.

Чтобы вставить пароль в свой password store, просто запустите

pass insert PASSWORD-NAME

Вы также можете добавить метаданные к своему паролю, такие как логин учетной записи или URL-адрес службы, которые могут использовать некоторые клиенты-клиенты. Вы можете сделать это, добавив флаг -m в ваш запрос на ввод вставки (до PASSWORD-NAME), который позволяет вам писать свою запись, используя только одну строчку и сохранять ее с помощью Ctrl + D.

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

В конце концов, ваша многострочная запись будет выглядеть так:

Возможно, стоит отметить, что если вы перешли из другого менеджера паролей, может быть сценарий миграции, который должен выполнить миграцию всех ваших записей, вместо того чтобы делать это вручную, по одному за раз. Сценарии миграции для большинства менеджеров паролей можно найти здесь.

Создание паролей#

Конечно, одна из хороших вещей с наличием менеджера паролей — это генерировать разные надежные пароли для каждой службы, на которой у вас есть учетная запись. Создание пароля с помощью pass так же просто, как и вызов:

Если у вас есть служба, которая не взаимодействует с символами в паролях, вы можете добавить к этому вызову параметр -n:

pass (1) использует pwgen (1) для генерации пароля. В каждом случае пароль автоматически вставляется в хранилище паролей для вас.

Если нам нужно изменить существующий пароль, мы можем либо перезаписать его с помощью вставки, либо использовать операцию редактирования, чтобы вызвать наш выбор $EDITOR:

Если вы это сделаете, вам может быть очень осторожно, что ваш редактор не настроен на резервное копирование или свопинг файлов в виде обычного текста документов, который он редактирует во временных каталогах или в файловых системах памяти.

Обратите внимание, что добавление или переписывание паролей не требует вашей кодовой фразы; только поиск и редактирование, в соответствии с тем, как работает GnuPG.

Для этого мы можем сначала вызвать pass insert -m PASSWORD-NAME, в котором будет запрашиваться пароль и его метаданные, оставьте первую строку пустой и заполните метаданные, прежде чем нажать Ctrl + D. Затем мы можем вызвать pass generate -ci PASSWORD-NAME. Обратите внимание на флаг -i (который обозначает «на месте»), что означает, что запись, которую мы хотим сгенерировать пароль, уже существует, и в этом случае pass заменит первую строку записи новым сгенерированным паролем и оставит остальные файла как было.

Теперь у вас есть вновь созданный сильный пароль, скопированный в буфер обмена, и нужные метаданные в его файле.

Получение паролей#

Было бы совершенно бесполезно хранить все ваши пароли в вашем passwords store, не имея возможности получить их и использовать. Как и все с пропуском, это довольно просто:

Если вы используете X-окна и имеете xclip (1), вы можете временно ввести пароль в буфер обмена для вставки в веб-формы:

Вы также можете предпочесть не запускать терминал и вводить командную строку, чтобы получить пароль, который вы затем скопируете на веб-сайт. В этом случае вам может быть интересно использовать одно из немногих расширений браузера, например passwe для Firefox и Chrome, PassFF для Firefox или Browserpass для Chrome, которые вы можете использовать для автоматического заполнения форм входа, используя пароли из вашего магазина и их метаданных. Для чего это стоит, я довольно давно использую PassFF, и он работает очень хорошо.

Удаление#

Если нам больше не нужен пароль, мы можем удалить его с помощью pass rm:

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru