Этот репозиторий содержит расширение Chrome, которое интегрирует диспетчер паролей с Chrome.
В этом репозитории есть две папки, которые содержат:
Чтобы использовать расширение, вам необходимо установить расширение в браузер Chrome или Chrome и собственное приложение Python (chrome_pass).
Эти инструкции были протестированы в Ubuntu 24.04 и Debian 12 (книжный червь):
sudo apt-get install pass python3 python3-pip
pip install --user chrome-pass==1.0.1
chrome_pass install
Загрузите расширение из Интернет-магазина Chrome.
Чтобы уменьшить сложность кода этого расширения, есть некоторые предположения относительно структуры хранилища паролей. Чтобы это расширение могло отображать и расшифровывать ваши пароли, необходимо выполнить следующие предположения:
Это расширение предполагает, что хранилище паролей находится в папке .password-store внутри вашего домашнего каталога:
$HOME/.password-store
Если у вас есть хранилище паролей, расположенное где-то еще, вы можете попробовать использовать символическую ссылку, чтобы обойти это ограничение, или установить переменную env PASSWORD_STORE_DIR
чтобы она указывала на местоположение хранилища паролей.
Этот плагин предполагает, что последние две части каждого пути к паролю имеют следующую структуру:
[Service URL]/[Username]
Например, чтобы сохранить некоторые учетные записи Gmail и Amazon:
~/.password-store/
├── mail.google.com
│ ├── me@gmailcom
│ ├── [email protected]
│ └── [email protected]
└── Amazon
├── www.amazon.com
│ ├── [email protected]
│ └── [email protected]
└── www.amazon.co.jp
├── [email protected]
└── [email protected]
Ваши пути могут состоять из любого количества частей, при условии, что последние две соответствуют приведенной выше структуре. А часть [URL-адрес службы] должна совпадать с URL-адресом просматриваемой вами страницы, поскольку она используется для выбора соответствующего пароля в магазине.
Если в файле pass настроен pass-otp, то chrome-pass сгенерирует код TOTP и заполнит им все числовые текстовые вводы в форме.
Для учетных записей IAM нам нужны не только имя пользователя и пароль для входа, но также 12-значный идентификатор или псевдоним учетной записи. Для этих учетных записей chrome-pass имеет специальную логику, позволяющую заполнить всю информацию на странице входа.
Password Store
├── signin.aws.amazon.com
│ ├── [email protected]
│ ├── [email protected]
│ ├── 183413992345
│ ├── 550312930456-username1
│ ├── 550312930456-username2
│ └── accountalias
signin.aws.amazon.com
, который является URL-адресом для входа в консоль.pass edit ...
и добавьте две пары ключ/значение в любом месте после строки пароля:username=[IAM username]
account=[12 digit AWS account id or alias]
username
для заполнения поля имени пользователя, account
для заполнения поля идентификатора учетной записи и расшифрованный password
для заполнения поля пароля. Расширение chrome-pass ищет любые пары ключ/значение в файлах pass gpg и заполняет любое поле ввода HTML идентификатором, равным key
с соответствующим value
.
Кроме того, если для value
установлены следующие специальные значения-заполнители, они заменяются на:
pass__user
: заменено на [Username]
извлеченное из последней части пути передачи.pass__password
: заменен расшифрованным паролем.pass__otpauth
: заменен кодом pass-otp, если он доступен. Примечание
Специальные ключи-заполнители имеют двойное подчеркивание __
.
Это позволяет chrome-pass работать с некоторыми нестандартными формами входа, такими как форма входа Apple Id. На этой странице входа отсутствует элемент формы, и для ее работы используется JavaScript. К счастью, HTML-поля ввода имени пользователя и пароля имеют четко определенные идентификаторы, которые мы можем установить в файле chrome-pass, чтобы все работало:
# chrome-pass for Apple ID login from.
account_name_text_field=pass__user
password_text_field=pass__password
Добавление вышеуказанных пар ключ/значение в файл пароля учетной записи Apple даст указание расширению chrome-pass заполнить любое поле ввода HTML с идентификатором account_name_text_field
именем пользователя и любое поле ввода HTML с идентификатором password_text_field
расшифрованным паролем.
Это только для разработчиков или людей, которые хотят увидеть исходный код, прежде чем доверять свои пароли какому-либо расширению, написанному неизвестным человеком.
В Chrome откройте URL-адрес chrome://extensions, проверьте режим разработчика , а затем загрузите путь к папке расширения с помощью кнопки «Загрузить распакованное расширение» . После загрузки расширения в Chrome запишите его идентификатор .
Далее нам нужно установить скрипт-оболочку chrome_pass и установить манифест собственного хост-приложения:
cd application
pip install --upgrade setuptools build --user
python -m build
pip install . --user
chrome_pass install [extension ID]
Замените пользовательские поля otpoauth
на pass__otpauth
в файлах передачи. Настраиваемое поле otpoauth
будет удалено и не будет работать в будущих выпусках.
Родное приложение и расширение 0.5.1 несовместимы с предыдущей версией. Убедитесь, что оба имеют версию 0.5.1, чтобы они работали правильно.
Скрипт nativePass
был переименован в chrome_pass
.
Версия 0.5.0 chrome-pass использует setuptools вместо distutils для упаковки и установки собственного приложения. При установке могут возникнуть такие ошибки, как:
ERROR: Cannot uninstall 'chrome-pass'. It is a distutils installed project and
thus we cannot accurately determine which files belong to it which would lead
to only a partial uninstall.
В этой ситуации необходимо вручную удалить старые версии пакета:
nativePass
. Найдите его с помощью which nativePass
.chrome_pass-0.X.0...
Если по какой-то причине расширение не может получить список имен пользователей из вашего хранилища паролей, наиболее вероятные причины:
Было обнаружено, что приложение chrome_pass не может расшифровать пароли gpg с помощью некоторых более новых версий python-gnupg. Я могу убедиться, что плагин работает без проблем при использовании модуля gnupg версии 0.3.9, который по умолчанию присутствует в Ubuntu 16.04LTS.
Подробности см. в соответствующей проблеме на Github.
Если плагин работает при запуске Chrome из терминала, но не работает при запуске из Spotlight или любого другого средства запуска, убедитесь, что переменная среды PATH правильно установлена средством запуска.
Подробности см. в связанной проблеме: Github.