Pass – Unix-Passwortmanager
(passwordstore.org)- Pass ist ein einfaches Passwortverwaltungs-Tool, das der Unix-Philosophie folgt und jedes Passwort mit GPG verschlüsselt in einer Datei speichert
- Passwörter lassen sich systematisch in einer Ordnerstruktur verwalten, und mit dem Kommandozeilen-Tool können sie einfach hinzugefügt, bearbeitet, erzeugt, angezeigt und gelöscht werden
- Durch Git-Integration können Passwortänderungen nachverfolgt und synchronisiert werden, was die Nutzung auf mehreren Computern und in Team-Umgebungen erleichtert
- Die Freiheit für Nutzer ist hoch, sodass sich Dateistruktur und Datenformat frei an die eigene Situation anpassen lassen
- Dank Erweiterbarkeit und hoher Kompatibilität werden zahlreiche Erweiterungen sowie plattformabhängige Clients/GUI aktiv entwickelt und veröffentlicht
Einführung in Pass
- Passwortverwaltung sollte einfach sein und der Unix-Philosophie folgen
- Pass speichert jedes Passwort als mit GPG verschlüsselte Datei; als Dateiname wird der Name der Website oder Ressource verwendet, für die das Passwort benötigt wird
- Diese verschlüsselten Dateien können in einer beliebigen Ordnerstruktur organisiert werden. Mit üblichen Dateiverwaltungsbefehlen lassen sie sich auch einfach zwischen Computern kopieren, verschieben oder löschen
- Pass stellt spezielle Befehle zum Hinzufügen, Bearbeiten, Erzeugen und Anzeigen einzelner Passwortdateien bereit; standardmäßig werden Passwörter unter
~/.password-storegespeichert - Es ist vollständig als einfaches Shell-Skript implementiert
- Für das Kopieren von Passwörtern in die Zwischenablage und das Protokollieren von Passwortänderungen wird Git verwendet
- Bearbeitung ist auch mit normalen Shell-Befehlen möglich; automatische Vervollständigung wird in Zsh, Fish, Bash und weiteren Shells unterstützt
- Eine Vielzahl von Erweiterungen und Clients/GUI für andere Plattformen wird aktiv von einer Community entwickelt
Verwendung des Passwortspeichers
- Die vollständige Liste aller gespeicherten Passwörter kann angezeigt werden
- Anzeige eines bestimmten Passworts sowie Kopieren in die Zwischenablage werden unterstützt (mit automatischem Löschen)
- Über
gpg-agentlassen sich Passworteingabe und Authentifizierung bequem handhaben - Neue Passwörter können hinzugefügt, bestehende Dateien mehrzeilig gespeichert (
-m-Option) und direkt mit dem Standard-Texteditor bearbeitet werden - Es gibt eine Funktion zur Erzeugung zufälliger Passwörter mit
/dev/urandom(je nach Option mit oder ohne Symbole, auch direktes Kopieren in die Zwischenablage wird unterstützt) - Beim Löschen eines Passworts wird auch die verschlüsselte Datei aus dem Dateisystem entfernt
- Nach der Initialisierung als Git-Repository wird bei jeder Passwortänderung ein Commit erzeugt; Synchronisierung ist mit
pass git push/pullmöglich - Weitere Funktionen und Details zur Nutzung finden sich in der man page
Grundlegende Einrichtung
- Bei der Initialisierung des Passwortspeichers kann man mit der Eingabe eines GPG-Schlüssels einfach starten (bei Angabe mehrerer GPG-Schlüssel auch gut für Team-Umgebungen geeignet)
- Für bestimmte Ordner können separate GPG-Schlüssel zugewiesen werden (
-p-Option) - Auch eine Initialisierung als Git-Repository ist möglich (ein Remote kann zusätzlich angegeben werden)
- Alle Vorgänge zum Hinzufügen, Löschen und Bearbeiten von Passwörtern werden als Git-Commits verwaltet
- In der man page finden sich weitergehende Beispiele zur Initialisierung
Installation
- Debian/Ubuntu: apt-get install pass
- Fedora/RHEL: yum install pass
- Unterstützung für zahlreiche Plattformen wie openSUSE, Gentoo, Arch, Macintosh und FreeBSD
- Tarball oder direktes Klonen des Git-Repositorys möglich (alle Releases werden mit signierten Tags bereitgestellt)
Datenorganisation und Flexibilität
- Pass erlaubt es, Daten frei nach eigenen Vorgaben zu organisieren (ohne erzwungenes Schema oder Format)
- Mehrzeilige Speicherung, Unterscheidung über Dateinamen, Ordnerstrukturen und andere Ansätze sind möglich
- Beispiel: Im Fall von Amazon/bookreader kann in der ersten Zeile das Passwort stehen, danach URL, Benutzername, Sicherheitsfragen und weitere Informationen
- Bei Bedarf können einzelne Informationen auch in separaten Dateien verwaltet werden (z. B. password, secretquestion1 usw.)
- Da beim Kopieren in die Zwischenablage nur die erste Zeile kopiert wird, lassen sich praktische Nutzung und zusätzliche Informationen effizient kombinieren
Erweiterungen
- Erweiterungen (extensions) werden unterstützt, um unterschiedlichen Anforderungen von Nutzern gerecht zu werden
- Sie werden im Systemordner oder im Benutzerordner installiert; per Umgebungsvariable wird festgelegt, ob sie aktiviert sind
- Die Community entwickelt und veröffentlicht aktiv eine Vielzahl unterschiedlicher Erweiterungen
Kompatible Clients
- Clients/GUI für verschiedene Plattformen werden von der Community entwickelt und verteilt
- Nutzer können einen Client auswählen, der zum eigenen Betriebssystem oder Nutzungsszenario passt
Migration aus anderen Passwortmanagern
- Für die Übernahme von Daten aus anderen Passwortmanagern werden verschiedene Konvertierungsskripte und Methoden unterstützt
- Nutzer können die optimale Datenorganisation passend zu ihren Anforderungen wählen
Entwickler und Lizenz
- Entwickelt von Jason A. Donenfeld (zx2c4.com)
- Kann unter der GPLv2+-Lizenz frei verwendet und modifiziert werden
2 Kommentare
Tatsächlich gibt es viele Tools, die einfach nur speichern, aber entscheidend ist die Integration wie etwa das automatische Ausfüllen.
Hacker-News-Kommentare
Hier gibt es viele positive Meinungen zu pass, aber auch einige klare Hauptnachteile
Dass die Daten unstrukturiert sind, macht sie im Allgemeinen umständlich in der Handhabung
Wenn man zum Beispiel Username und Passwort in Skripten verwenden will, muss man jedes Mal selbst Parsing-Code schreiben, was unpraktisch ist
Wenn man mit
pass generateein neues Passwort erstellt, werden alle vorhandenen Werte überschriebenWenn also Passwort und die Antwort auf eine Sicherheitsfrage zusammen gespeichert sind und man nur das Passwort neu erzeugt, verschwindet die Antwort
Den Verlauf zu prüfen ist sehr schwierig
Da alles verschlüsselt ist, bekommt man selbst mit
git diffnichts wirklich Brauchbares, und auch mit Kommandozeilen-Tools ist Verlauf oder Wiederherstellung nach Fehlern unkomfortabelDer Name ist zu allgemein, daher ist die Suche schwierig
In letzter Zeit wird deshalb ein ähnliches Tool namens passworth entwickelt (auch mit Blick auf Container/Sandbox-Nutzung) https://github.com/andrewbaxter/passworth
Zum Punkt, dass die Verlaufskontrolle schwierig sei: Tatsächlich unterstützt pass das über eine
.gitattributes-Datei, sodass git gpg-Dateien zur Anzeige von Diffs in Text umwandeln kann~/.password-store/.gitattributes*.gpg diff=gpghinzufügen.git/configmit einer[diff "gpg"]-Einstellungtextconv = gpg2 -d ...setzenWeitere Probleme aus der eigenen Nutzung von pass
gpg-agent)Das Problem der Datenstruktur wird über die Ordnerstruktur gelöst
Ich empfinde gerade die Unstrukturiertheit der Daten eher als großen Vorteil
Username: xxxverwendet, erkennen Browser-Plugins wie browserpass das und füllen automatisch ausZu Datenstruktur und History-Problemen wurden auch funktionsbezogene Meinungen geteilt
pass generatealles überschreibt, kann man Dinge getrennt in Dateien wiesite/passundsite/secret-questionverwaltengit diffist es zwar schwer, generierte Passwörter nachzuverfolgen, aber in der Praxis ist vor allem wichtig, wann zuletzt etwas geändert wurde (git log), und bei Bedarf kann man mitgit checkout -dwiederherstellen$ passeingibt, bekommt man die zugehörigen Pakete angezeigt, daher ist das Suchproblem nicht ganz so gravierendBrowser-Passwortmanager plus Passkeys sind deutlich bequemer, aber ein pass-Tresor ist weiterhin nützlich zum Speichern von Wiederherstellungscodes und API-Keys
Das Unklarste an pass war für mich immer das Bedrohungsmodell
Wenn der GPG-Agent gecacht wird, kann jedes beliebige Skript (
npm postinstallusw.) perpass lsalle Zugangsdaten durchgehenDann ist es letztlich fast so, als würde man einfach alles in einer Datei wie
~/passwords.txtspeichernVerzichtet man dagegen auf Caching, muss man ständig ein langes GPG-Passwort eingeben
Ich habe auch ausprobiert, mit einem YubiKey bedarfsweise zu entsperren, aber die Integration ist schwach und bei häufigen Passwortabfragen ziemlich unpraktisch
Deshalb bin ich zu Bitwarden gewechselt
Ich persönlich lasse den Yubi einfach permanent eingesteckt
Bei allen Passwortmanagern gilt grundsätzlich: Wenn der Speicher entsperrt ist, können Master-Passwort oder Inhalte im RAM oder Cache verbleiben und damit alle Passwörter offengelegt werden
Wenn man einen freien USB-Port hat, kann man auch einfach einen Nano Key dauerhaft eingesteckt lassen
Ich speichere Passwörter in einer SQLite-DB auf einer verschlüsselten Dateipartition
Bei einem YubiKey kann man PIN oder Touch so konfigurieren, dass die Nutzung des GPG-Schlüssels jedes Mal bestätigt werden muss
Ich mag das wirklich sehr und nutze es täglich
Für Leute, die CLI mögen, ist pass interessant, aber für normale Nutzer („Normies“) scheint ein Setup mit KeepassXC auf dem Desktop, KeepassDX auf Android und Remote-Zugriff über Wireguard geeigneter
Eine nützliche Funktion von keepass, über die selten gesprochen wird: Man kann mehrere Vaults gleichzeitig öffnen und durchsuchen
Ich finde, dass auch der Maßstab „Normie“ relativ ist
Man sollte auch
keepassxc.clinicht vergessenEin Anwendungsfall von mir, den keepass nicht gut abdeckt, ist das Erzeugen von Passwörtern auf zwei getrennten Computern und das spätere Zusammenführen
Ich würde KeepassXC auch gern nutzen, aber das Teilen von Zugangsdaten mit dem Ehepartner ist nicht einfach
Wenn man pass nur allein verwendet, ist es eine interessante Lösung, aber beim Teilen mit mehreren Personen sollte man vorsichtig sein
Wenn man es als Passwortverwaltung im Unternehmen nutzt, gibt es keine Möglichkeit nachzuvollziehen, wer welches Secret wann eingesehen hat, daher müsste man bei Personalwechseln alle Passwörter ändern
Wenn jemand neu Zugriff braucht, gibt es keinen Standardweg, Dateien selektiv neu zu verschlüsseln; das muss man selbst bauen
Zwar wird mit git gespeichert, aber die Commit-Messages werden automatisch erzeugt, sodass der praktische Mehrwert kaum über Dropbox hinausgeht
Wenn man versehentlich etwas Falsches pusht und es rückgängig machen will, muss man die Git-History neu schreiben, was auf den Geräten anderer Nutzer Probleme verursachen kann
Die Einfachheit und direkte Manipulierbarkeit sind zwar ein Vorteil, aber genau diese Einfachheit ist auch eine Falle
Das ist ähnlich wie Ansätze vom Typ
hash(site_name+main_password): elegant, aber in der Praxis mit vielen Problemen verbundenAuch im Business-Umfeld braucht man Funktionen wie End-to-End-Verschlüsselung und Fingerprint-Verifikation zwischen Nutzern; Bitwarden scheint dafür am ehesten geeignet, aber bessere Beispiele wären willkommen
Auch in pass kann man pro Verzeichnis unterschiedliche Schlüssel (oder mehrere Schlüssel) einsetzen und so den Zugriff nach Gruppen oder Personen fein granular steuern
In meinem Unternehmen nutzen wir 1Password
op runüber.env-Dateien, CI-Integration und vieles mehrIch habe es nur evaluiert und keine echte Praxiserfahrung damit, aber passbolt wirkte als Tool zum Teilen von Team-Passwörtern wie eine gute Option https://www.passbolt.com
In unserem Unternehmen nutzen wir erfolgreich ein eher unbekanntes Tool namens "pa" https://git.j3s.sh/pa
Es scheint auch möglich, auf Basis von FOKS eine gute Lösung zu bauen https://foks.pub
Ich bin vor Kurzem von pass zu Bitwarden und Vaultwarden gewechselt
In einer Umgebung, in der GUI-Apps per Flatpak installiert werden, funktionierte die Integration zwischen der Firefox-Erweiterung und pass nicht, was unpraktisch war
Als Workaround habe ich im Run-Dialog
pass -c <path>verwendet, um ein Passwort zu kopieren und dann im Browser einzufügen, aber ideal war das nichtDass die offizielle Android-App archiviert wurde, war ebenfalls ein Auslöser; es gibt zwar Forks, aber unklar ist, wie lange sie gepflegt werden https://github.com/android-password-store/Android-Password-Store/discussions/3260
Aktuell hoste ich Vaultwarden selbst und nutze es mit mehreren Bitwarden-Clients
Ein Erfahrungsbericht zum Wechsel von pass zu KeePassXC
Es gibt auch das Tool passmenu
Ich wusste gar nicht, dass die Android-App für pass eingestellt wurde
pass -cdirekt aus dem Prompt als PluginsEs wurde nach den Offline-Erfahrungen mit vaultwarden gefragt
Es gibt auch die Erweiterung pass-otp https://github.com/tadfisher/pass-otp
Auch die Android-App für pass ist ziemlich ordentlich https://play.google.com/store/apps/details?id=dev.msfjarvis.aps
Es funktioniert auch unter termux
Die Android Password Store App wurde letztes Jahr archiviert, aber agrahn hat sie geforkt und deutlich verbessert
Meine eigene Alternative ist ein kleines Skript in
~/bin, das für die OTP-Erzeugung pass und oathtool nutztEinige ältere Android-Apps für pass lassen sich auf meinen Geräten inzwischen gar nicht mehr installieren
Wer statt GPG age verwendet, für den kann das Tool passage hilfreich sein https://github.com/FiloSottile/passage
Seit fast 10 Jahren nutze ich inzwischen einen anderen Ansatz
Alle Passwort-Metadaten werden als Klartext-JSON gespeichert; jeder Eintrag enthält user, Version und Passwortregeln (Länge, Zeichentypen usw.)
Das eigentliche Passwort wird nicht gespeichert, sondern „deterministisch“ aus Passphrase und Metadaten-Hash erzeugt
Schon durch das Ändern der Versionsnummer entsteht ein komplett neues Passwort, und über die „Version“ lässt sich die Historie leicht nachvollziehen
Nachteil: Teilen ist fast unmöglich, weil die andere Person meine Passphrase kennen müsste
Für den Fall, dass Teilen nötig wäre, hatte ich auch über einen Modus nachgedacht, bei dem der Passwortgenerator Chiffretext erzeugt und diesen separat als Metadaten speichert, praktisch war das aber kaum nötig
Der Ansatz mit Passwortgeneratoren ist angenehm, weil man sich weniger Sorgen machen muss, den Vault zu verlieren
Vor Kurzem habe ich diesen Ansatz über den SECUSO Password Generator kennengelernt https://secuso.aifb.kit.edu/english/105.php
Wenn man eine Passphrase teilt, vergrößert das die Angriffsfläche; bei einem einzigen Leak können dadurch mehrere Zugangsdaten gleichzeitig gefährdet sein
Ich nutze pass seit über 8 Jahren und habe etwa 1300 Passwörter gespeichert
Die Synchronisation zwischen Geräten per git funktioniert für mich wirklich hervorragend
„Wie kommt man auf 1300 Passwörter?“