Экспорт паролей из менеджера паролей `pass`

9

Я пользуюсь pass менеджером паролей уже год или около того, и это круто, но иногда мне нравится тестировать другие менеджеры паролей, а затем мне нужны мои пароли обратно.

До сих пор я просто добавлял их вручную, когда они мне нужны, но если я хочу перейти на другой менеджер паролей, мне нужен скрипт, потому что у меня нет терпения, чтобы сделать это один за другим, учитывая, что у меня есть около сто (если не больше).

Является ли это возможным? Есть ли уже решение?

Последние пару месяцев я искал и выключал решение, но так и не смог найти решение, в котором «просто запустите этот скрипт и экспортируйте бум».

Есть ли такой сценарий? Если нет, что или где я должен изучить, чтобы сделать один?

greduan
источник
@josten Да, я думаю, есть что-то, где он просто просматривает каждый файл и получает пароль и сохраняет его где-нибудь. Это один из способов сделать это. Но не уверен, как ...
greduan

Ответы:

10

Это можно сделать, если вы запускаете gpg-agent (и ваша парольная фраза загружена), просматривая файлы в вашем хранилище паролей и записывая их в отдельный файл.

Вы должны удалить ведущие каталоги из path ( $PASSWORD_STORE_DIR) и .gpgрасширения из каждого из файлов в подкаталогах, но в остальном это достаточно просто:

#!/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
источник
Это, конечно, очень просто, в соответствии с тем, что я думал. :) Просто очень быстро, как бы вы добавили имя файла перед содержимым каждого файла, а затем две строки между каждым файлом (для разделения)? Я не очень знаком с сценариями оболочки.
greduan
Кстати, причина, по которой я этого хочу, заключается в том, что некоторые пароли (а именно те, которые не были импортированы из LastPass) не имеют никакой информации о них, кроме самого пароля, поэтому, когда их много, я не знаю, для чего это пароль.
greduan
@Greduan Обновлено для печати в том формате, о котором вы спрашивали.
jasonwryan