Dieses Repository enthält eine Chrome-Erweiterung, die den Pass-Passwort-Manager in Chrome integriert.
Es gibt zwei Ordner in diesem Repository, die Folgendes enthalten:
Um die Erweiterung verwenden zu können, müssen Sie die Erweiterung in Ihrem Chrome- oder Chromium-Browser und der nativen Python-Anwendung (chrome_pass) installieren.
Diese Anleitung wurde in Ubuntu 24.04 und Debian 12 (Bücherwurm) getestet:
sudo apt-get install pass python3 python3-pip
pip install --user chrome-pass==1.0.1
chrome_pass install
Holen Sie sich die Erweiterung aus dem Chrome Web Store.
Um die Codekomplexität dieser Erweiterung zu reduzieren, gibt es einige Annahmen hinsichtlich der Struktur des Passwortspeichers. Damit diese Erweiterung Ihre Passwörter auflisten und entschlüsseln kann, müssen diese Annahmen befolgt werden:
Diese Erweiterung geht davon aus, dass sich der Passwortspeicher im Ordner „.password-store“ in Ihrem Home-Verzeichnis befindet:
$HOME/.password-store
Falls sich der Passwortspeicher woanders befindet, können Sie versuchen, diese Einschränkung mit einem symbolischen Link zu umgehen, oder die Umgebungsvariable PASSWORD_STORE_DIR
so einstellen, dass sie auf den Speicherort des Passwortspeichers verweist.
Dieses Plugin geht davon aus, dass die letzten beiden Teile jedes Passwortpfads dieser Struktur folgen:
[Service URL]/[Username]
Um beispielsweise einige Gmail- und Amazon-Konten zu behalten:
~/.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]
Ihre Pfade können aus beliebig vielen Teilen bestehen, solange die letzten beiden der oben genannten Struktur folgen. Und der Teil [Service-URL] muss mit der URL der angezeigten Seite übereinstimmen, da er zur Auswahl des entsprechenden Passworts aus dem Store verwendet wird.
Wenn in der Pass-Datei pass-otp konfiguriert ist, generiert chrome-pass den TOTP-Code und füllt alle numerischen Texteingaben im Formular damit aus.
Für IAM-Konten benötigen wir nicht nur den Login-Benutzer und das Passwort, sondern auch die 12-stellige ID oder den Alias des Kontos. Für diese Konten verfügt chrome-pass über eine spezielle Logik, um alle Informationen auf der Anmeldeseite ausfüllen zu können.
Password Store
├── signin.aws.amazon.com
│ ├── [email protected]
│ ├── [email protected]
│ ├── 183413992345
│ ├── 550312930456-username1
│ ├── 550312930456-username2
│ └── accountalias
signin.aws.amazon.com
lauten. Dies ist die URL für die Anmeldung bei der Konsole.pass edit ...
und fügen Sie an beliebiger Stelle nach der Passwortzeile zwei Schlüssel/Wert-Paare hinzu:username=[IAM username]
account=[12 digit AWS account id or alias]
username
zum Ausfüllen des Benutzernamenfelds, das account
zum Ausfüllen des Konto-ID-Felds und das entschlüsselte password
zum Ausfüllen des Passwortfelds. Die Chrome-Pass-Erweiterung sucht nach Schlüssel/Wert-Paaren in den Pass-GPG-Dateien und füllt jedes HTML-Eingabefeld mit der ID, die dem key
entspricht, mit dem entsprechenden value
.
Wenn der value
außerdem auf die folgenden speziellen Platzhalterwerte festgelegt ist, werden diese ersetzt durch:
pass__user
: Ersetzt durch den [Username]
der aus dem letzten Teil des Pass-Pfads extrahiert wurde.pass__password
: Durch das entschlüsselte Pass-Passwort ersetzt.pass__otpauth
: Wird durch den pass-otp-Code ersetzt, falls verfügbar. Notiz
Die speziellen Platzhalterschlüssel haben doppelte Unterstriche __
.
Dadurch kann Chrome-Pass mit einigen nicht standardmäßigen Anmeldeformularen wie dem Apple-ID-Anmeldeformular funktionieren. Dieser Anmeldeseite fehlt ein Formularelement und sie benötigt Javascript, um zu funktionieren. Glücklicherweise verfügen die HTML-Eingabefelder für Benutzername und Passwort über klar definierte IDs, die wir in der Chrome-Pass-Datei festlegen können, damit es funktioniert:
# chrome-pass for Apple ID login from.
account_name_text_field=pass__user
password_text_field=pass__password
Durch das Hinzufügen der oben genannten Schlüssel/Wert-Paare zur Passdatei des Apple-Kontos wird die Chrome-Pass-Erweiterung angewiesen, jedes HTML-Eingabefeld mit der ID account_name_text_field
mit dem Benutzernamen und jedes HTML-Eingabefeld mit der ID password_text_field
mit dem entschlüsselten Passwort zu füllen.
Dies ist nur für Entwickler oder Personen gedacht, die den Quellcode sehen möchten, bevor sie ihre Passwörter einer von einer unbekannten Person geschriebenen Erweiterung anvertrauen.
Öffnen Sie in Chrome die URL chrome://extensions, überprüfen Sie den Entwicklermodus und laden Sie dann den Pfad zum Erweiterungsordner über die Schaltfläche „Entpackte Erweiterung laden“ . Nachdem die Erweiterung in Chrome geladen wurde, notieren Sie sich die Erweiterungs-ID .
Als nächstes müssen wir das Wrapper-Skript chrome_pass und das Native Host Application-Manifest installieren:
cd application
pip install --upgrade setuptools build --user
python -m build
pip install . --user
chrome_pass install [extension ID]
Ersetzen Sie in Ihren Pass-Dateien benutzerdefinierte otpoauth
Felder durch pass__otpauth
. Das benutzerdefinierte Feld otpoauth
wird entfernt und funktioniert in zukünftigen Versionen nicht mehr.
Die native Anwendung und Erweiterung 0.5.1 sind nicht mit der Vorgängerversion kompatibel. Stellen Sie sicher, dass beide 0,5,1 sind, damit sie ordnungsgemäß funktionieren.
Das nativePass
-Skript wurde in chrome_pass
umbenannt.
Version 0.5.0 von Chrome-Pass verwendet Setuptools anstelle von Distutils, um die native Anwendung zu verpacken und zu installieren. Bei der Installation können Fehler auftreten wie:
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.
In dieser Situation ist es notwendig, ältere Versionen des Pakets manuell zu deinstallieren:
nativePass
-Skript. Finden Sie es mit which nativePass
.chrome_pass-0.X.0...
Dateien und Verzeichnisse. Wenn die Erweiterung aus irgendeinem Grund nicht in der Lage ist, die Liste der Benutzernamen aus Ihrem Passwortspeicher abzurufen, sind die wahrscheinlichsten Gründe:
Es wurde festgestellt, dass die Anwendung chrome_pass die GPG-Passwörter mit einigen neueren Versionen von Python-Gnupg nicht entschlüsseln kann. Ich kann überprüfen, ob das Plugin ohne Probleme funktioniert, wenn ich das Gnupg-Modul Version 0.3.9 verwende, das standardmäßig in Ubuntu 16.04LTS zu finden ist.
Weitere Informationen finden Sie im entsprechenden Problem unter: Github.
Wenn das Plugin funktioniert, wenn Sie Chrome über ein Terminal starten, aber nicht, wenn es über Spotlight oder einen anderen Launcher gestartet wird, stellen Sie sicher, dass die Umgebungsvariable PATH vom Launcher korrekt festgelegt ist.
Weitere Informationen finden Sie im entsprechenden Problem unter: Github