web-dev-qa-db-ja.com

「pass」パスワードマネージャからパスワードをエクスポートする

私はpasspassword manager を1年ほど使用してきましたが、すばらしいですが、他のパスワードマネージャーをテストしたいので、パスワードを戻す必要があります。

これまでは、必要に応じて手動で追加してきましたが、別のパスワードマネージャーに移行したい場合は、スクリプトを作成する必要があります。1つずつ実行する忍耐力がないため、 100(それ以上ではない場合)。

出来ますか?すでに解決策はありますか?

過去数か月間、解決策をオンとオフで検索しましたが、「このスクリプトを実行してブームをエクスポートするだけ」の解決策を見つけることができませんでした。

そのようなスクリプトはありますか?そうでない場合、何をどこで調べれば作成できますか?

9
greduan

gpg-agent (およびパスフレーズがロードされている)を実行している場合は、パスワードストア内のファイルをループして別のファイルに書き込むことで、これを行うことができます。

パスから先頭のディレクトリを削除する必要があります($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
10
jasonwryan