Exporter les mots de passe depuis le gestionnaire de mots de passe «pass»

9

J'utilise le pass gestionnaire de mots de passe depuis environ un an maintenant, et c'est génial, mais parfois j'aime tester d'autres gestionnaires de mots de passe, puis j'ai besoin de récupérer mes mots de passe.

Jusqu'à présent, je viens de les ajouter manuellement car j'en ai besoin, mais si je veux migrer vers un autre gestionnaire de mots de passe, j'ai besoin d'un script, car je n'ai pas la patience de le faire un par un, étant donné que j'ai près de une centaine (sinon plus).

C'est possible? Y a-t-il déjà une solution?

J'ai cherché et éteint une solution au cours des deux derniers mois et je n'ai pas réussi à en trouver une où il "suffit d'exécuter ce script et d'exporter le boom".

Existe-t-il un tel script? Sinon, sur quoi ou où dois-je me pencher pour en faire un?

greduan
la source
@josten Ouais, je pense avoir quelque chose où il passe par chaque fichier et il obtient le mot de passe et l'enregistre quelque part. C'est une façon de le faire. Mais
je

Réponses:

10

Vous pouvez le faire si vous exécutez gpg-agent (et que votre phrase secrète est chargée), en parcourant les fichiers de votre magasin de mots de passe et en les écrivant dans un fichier séparé.

Vous devez supprimer les répertoires de tête du chemin ( $PASSWORD_STORE_DIR) et l' .gpgextension de chacun des fichiers dans les sous-répertoires, mais sinon c'est assez simple:

#!/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
la source
C'est certainement très simple, dans le sens de ce que je pensais. :) Très rapidement, comment ajouteriez-vous le nom de fichier avant le contenu de chaque fichier, puis deux lignes entre chaque fichier (pour la séparation)? Je ne connais pas très bien les scripts shell.
greduan
BTW, la raison pour laquelle je le veux, c'est parce que certains mots de passe (à savoir ceux qui n'ont pas été importés de LastPass) n'ont aucune information à leur sujet en dehors du mot de passe lui-même, donc quand il y en a beaucoup, je ne sais pas pour quoi c'est un mot de passe.
greduan
@Greduan Mis à jour pour imprimer dans le format que vous avez demandé.
jasonwryan