从`pass`密码管理器中导出密码


9

我已经使用pass 密码管理器大约一年了,这很棒,但是有时我想测试其他密码管理器,然后需要我的密码。

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

可能吗?已经有解决方案了吗?

在过去的几个月中,我一直在寻找一种解决方案,但一直找不到“仅运行此脚本并导出繁荣”的解决方案。

有这样的剧本吗?如果没有,我应该在哪里寻找什么?


@josten是的,我正在考虑在每个文件中进行处理,并获取密码并将其保存在某个地方。那是做到这一点的一种方法。但不确定如何...
greduan

Answers:


10

如果您正在运行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

按照我的想法,这当然非常简单。:)很快,您将如何在每个文件的内容之前添加文件名,然后在每个文件之间添加两行(用于分隔)?我对Shell脚本不是很熟悉。
greduan 2014年

顺便说一句,我想要的原因是因为某些密码(即那些不是从LastPass导入的密码)除了密码本身之外没有关于它们的信息,所以当有很多密码时,我不知道这是什么密码。
greduan 2014年

@Greduan已更新为以您要求的格式打印。
jasonwryan 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.