Для Linux существует множество разнообразных менеджеров паролей, от встроенных в Chrome и Firefox до обособленного KeePass, который хранит все пароли на локальной машине. Большинство из них — графические приложения, которые никак не вписываются в наш консольный аскетичный десктоп, но есть среди них и более гиковые вещи, например pass.
Для тех, кто предпочитает графические приложения, есть графическая реализация pass под названием QtPass.
Хранение паролей в Linux
Менеджер паролей pass — простая консольная утилита, которая позволяет добавлять зашифрованные пароли в локальную базу, извлекать их, а также быстро копировать в буфер обмена или генерировать новые.
Pass доступен во всех популярных дистрибутивах. Например, в Arch Linux его можно установить так:
1 |
$ sudo pacman -S pass |
Далее следует сгенерировать PGP-ключ, если у вас его еще нет:
1 |
$ gpg2 --gen-key |
Команда попросит вас ввести имя (ваше или имя ключа) и email, после чего подвигать мышкой и понажимать кнопки для получения энтропии.
Когда генерация ключа будет закончена, можно инициализировать базу pass, указав имя ключа:
1 |
$ pass init 'ИМЯ' |
Далее можно начинать добавлять пароли, лучше сразу генерировать их на месте, например:
1 |
$ pass generate spy-soft.net 15 |
Эта команда сгенерирует пароль из пятнадцати символов для сайта spy-soft.net.
Просмотреть пароль можно с помощью такой команды:
1 |
$ pass spy-soft.net |
Скопировать в буфер обмена такой:
1 |
$ pass -c spy-soft.net |
А удалить с помощью такой:
1 |
$ pass rm spy-soft.net |
Просмотреть всю базу можно, запустив pass без аргументов:
1 |
$ pass |
Pass хранит базу паролей в каталоге ~/.password-store/, каждый пароль в своем собственном файле. Вы можете создавать в базе новые каталоги и перемещать в них файлы с паролями для более удобного управления. Удаление файла пароля приведет к удалению пароля из базы pass.
Кроме того, каталог ~/.password-store/ можно разместить в Dropbox, чтобы иметь возможность работать с ним с любой машины.
Импорт паролей из KeePass
Для pass существует множество различных инструментов импорта паролей из других приложений (ссылки на них есть в конце главной страницы официального сайта). Например, импортировать пароли из KeePass можно с помощью keepass2pass.py:
1 2 3 |
$ wget https://git.zx2c4.com/password-store/plain/contrib/importers/keepass2pass.py $ chmod +x keepass2pass.py $ ./keepass2pass.py -f database.xml |
Здесь database.xml — это экспортированная из KeePass база паролей.
Быстрое копирование пароля с помощью dmenu
Благодаря простоте pass его очень легко интегрировать с нашим рабочим столом и dmenu. Скрипт для dmenu уже существует, и его достаточно всего лишь скачать и повесить на комбинацию клавиш i3:
1 2 3 |
$ cd ~/bin $ wget https://git.zx2c4.com/password-store/plain/contrib/dmenu/passmenu $ chmod +x passmenu |
В конфиг ~/.config/i3/config добавляем строку:
1 |
bindsym $mod+p exec passmenu |
Теперь по нажатию Win + P откроется dmenu с выбором пароля. При выборе пароль будет скопирован в буфер обмена на 45 секунд.
Интеграция с браузером
Для пущего удобства pass можно интегрировать с браузером. Для этого установи приложение browserpass:
1 |
$ yaourt -S browserpass |
И расширение для Chrome или Firefox.
Далее достаточно перейти на страницу логина нужного сайта, нажать кнопку расширения. Поля будут заполнены автоматически. Но только в том случае, если вместе с паролем в базе записан логин в формате «login: логин» или «username: логин».
При импорте из KeePass скрипт сам добавит эти поля, также их можно добавить с помощью такой команды:
1 |
$ pass edit spy-soft.net |
Просто впишите строку username: ваш_логин сразу после пароля.
Pass для Android
Для iOS и Android есть совместимые с pass менеджеры паролей. Чтобы воспользоваться ими, необходимо экспортировать ключ, используемый для шифрования базы паролей:
1 |
$ gpg --export-secret-key -a "ИМЯ" > private.key |
и вместе с базой паролей перенести их в память устройства.
В случае с приложением для Android также потребуется установить OpenKeychain. Именно в него необходимо импортировать ключ GPG.
А как он с файлами работает? Можно как-то прикрепить файл к записи?
а как импортировать файл csv в pass команды нехера не работают