Exportieren Sie Passwörter aus dem Pass-Passwort-Manager

9

Ich benutze den pass Passwort-Manager jetzt seit ungefähr einem Jahr und es ist großartig, aber manchmal teste ich gerne andere Passwort-Manager und dann brauche ich meine Passwörter zurück.

Bisher habe ich sie nur manuell hinzugefügt, wenn ich sie benötige. Wenn ich jedoch zu einem anderen Kennwortmanager migrieren möchte, benötige ich ein Skript, da ich nicht die Geduld habe, es einzeln auszuführen, wenn ich bedenke, dass ich in der Nähe bin hundert (wenn nicht mehr).

Ist es möglich? Gibt es schon eine Lösung?

Ich habe in den letzten Monaten immer wieder nach einer Lösung gesucht und keine gefunden, bei der es darum geht, "nur dieses Skript auszuführen und den Export zu exportieren".

Gibt es so ein Skript? Wenn nicht, was oder wo sollte ich suchen, um eine zu machen?

Greduan
quelle
@josten Ja, ich denke, ich habe etwas, bei dem es einfach jede Datei durchläuft und das Passwort erhält und das irgendwo speichert. Das ist eine Möglichkeit, es zu tun. Aber nicht sicher, wie ...
Greduan

Antworten:

10

Sie können dies tun, wenn Sie gpg-agent ausführen (und Ihre Passphrase geladen ist), indem Sie die Dateien in Ihrem Kennwortspeicher durchlaufen und in eine separate Datei schreiben.

Sie müssen die führenden Verzeichnisse aus dem Pfad ( $PASSWORD_STORE_DIR) und der .gpgErweiterung aus jeder der Dateien in den Unterverzeichnissen entfernen, aber ansonsten ist es einfach genug:

#!/usr/bin/env bash
# export passwords to external file

shopt -s nullglob globstar
prefix=${PASSWORD_STORE_DIR:-$HOME/.password-store}

for file in "$prefix"/**/*.gpg; do                           
    file="${file/$prefix//}"
    printf "%s\n" "Name: ${file%.*}" >> exported_passes
    pass "${file%.*}" >> exported_passes
    printf "\n\n" >> exported_passes
done
Jasonwryan
quelle
Das ist sicherlich sehr einfach, so wie ich es mir vorgestellt habe. :) Nur ganz schnell, wie würden Sie den Dateinamen vor dem Inhalt jeder Datei und dann zwei Zeilen zwischen jeder Datei hinzufügen (zur Trennung)? Ich bin nicht sehr vertraut mit Shell-Skripten.
Greduan
Übrigens, der Grund, warum ich das möchte, ist, dass einige Passwörter (nämlich diejenigen, die nicht aus LastPass importiert wurden) außer dem Passwort selbst keine Informationen darüber haben. Wenn es also viele gibt, weiß ich nicht, wofür es ein Passwort ist.
Greduan
@Greduan Aktualisiert, um in dem von Ihnen gewünschten Format zu drucken.
Jasonwryan