該儲存庫包含一個 Chrome 擴展,它將 pass 密碼管理器與 Chrome 整合。
此存儲庫中有兩個資料夾,其中包含:
要使用該擴展,您需要在 chrome 或 chromium 瀏覽器和 python 本機應用程式 (chrome_pass) 中安裝該擴充功能。
這些指令已經在 Ubuntu 24.04 和 Debian 12 (bookworm) 中進行了測試:
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
如果您的密碼儲存位於其他位置,您可以嘗試使用符號連結來解決此限製或設定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]
您的路徑可以包含任多個部分,只要最後兩個部分遵循上述結構即可。並且[Service URL]部分必須與您正在查看的頁面的URL匹配,因為它用於從商店中選擇相應的密碼。
如果 pass 檔案配置了 pass-otp,則 chrome-pass 將產生 TOTP 代碼並用它填入表單中的任何數位文字輸入。
對於 IAM 帳戶,我們不僅需要登入使用者和密碼,還需要帳戶 12 位元 ID 或別名。對於這些帳戶,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 ...
編輯密碼 GPG 文件,並在密碼行後的任意位置添加兩個鍵/值對:username=[IAM username]
account=[12 digit AWS account id or alias]
username
填入使用者名字段,使用account
填入帳戶 ID 字段,並使用解密的password
填入密碼欄位。chrome-pass 擴充功能在 pass gpg 檔案中尋找任何鍵/值對,並用對應的value
填入 ID 等於key
的任何 HTML 輸入欄位。
此外,如果該value
設定為以下特殊佔位符值,它們將替換為:
pass__user
:替換為從 pass 路徑最後部分提取的[Username]
。pass__password
:替換為解密的通行密碼。pass__otpauth
:替換為 pass-otp 代碼(如果可用)。 筆記
特殊佔位符鍵具有雙底線__
字元。
這使得 chrome-pass 可以使用一些非標準登入表單,例如 Apple ID 登入表單。此登入頁面缺少表單元素並依賴 JavaScript 來運作。幸運的是,使用者名稱和密碼 HTML 輸入欄位具有明確定義的 ID,我們可以在 chrome-pass 檔案中設定它們以使其正常工作:
# chrome-pass for Apple ID login from.
account_name_text_field=pass__user
password_text_field=pass__password
將上述鍵/值對添加到 Apple 帳戶通行證文件中將指示 chrome-pass 擴展程序使用用戶名填充任何 id 為account_name_text_field
HTML 輸入字段,並使用解密的密碼填充任何 id 為password_text_field
HTML 輸入字段。
這僅適用於開發人員或希望在將密碼信任給未知人員編寫的某些擴充功能之前查看原始程式碼的人。
在 Chrome 中開啟 URL chrome://extensions,檢查開發人員模式,然後使用「載入解壓縮的擴充功能」按鈕載入擴充資料夾的路徑。將擴充功能載入到 Chrome 後,記下擴充 ID 。
接下來我們需要安裝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
。
chrome-pass 0.5.0 版本使用 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 應用程式無法使用某些較新版本的 python-gnupg 解密 gpg 密碼。當使用 Ubuntu 16.04LTS 中預設找到的 gnupg 模組版本 0.3.9 時,我可以驗證插件是否正常運作。
有關詳細信息,請參閱相關問題:Github。
如果從終端啟動 chrome 時該插件可以工作,但從 Spotlight 或任何其他啟動器啟動時插件不起作用,請確保啟動器正確設定了 PATH 環境變數。
有關詳細信息,請參閱相關問題:Github