从“pass”密码管理器导出密码

gre*_*uan 12 scripting password

我已经使用pass 密码管理器一年左右了,它很棒,但有时我喜欢测试其他密码管理器,然后我需要找回密码。

到目前为止,我只是在需要时手动添加它们,但是如果我想迁移到另一个密码管理器,我需要一个脚本,因为我没有耐心一一完成,考虑到我已经接近一百(如果不是更多的话)。

是否可以?已经有解决方案了吗?

在过去的几个月里,我一直在断断续续地寻找解决方案,但一直找不到“只需运行此脚本并导出繁荣”的解决方案。

有这样的剧本吗?如果没有,我应该研究什么或在哪里制作一个?

jas*_*yan 15

如果您正在运行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
Run Code Online (Sandbox Code Playgroud)